HarmonyOS 鸿蒙Next string.json文件中如何定义字符串数组?

发布于 1周前 作者 phonegap100 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next string.json文件中如何定义字符串数组?

请问string.json中定义字符串数组的语法是怎样的?我用如下的写法声明一个名为test的数组,打包的时候会报错:“Error: value not string.”,我的预期是声明后在代码中用 resourceManager.getStringArrayValueSync($r(‘app.string.test’)) 的方式去获取这个数组,麻烦帮忙看下应该如何使用呢?   
 
{
“string”: [
{
“name”: “page_show”,
“value”: “page from package”
},
{
“name”: “test”,
“value”: [“1”,“2”]
}
]
}


更多关于HarmonyOS 鸿蒙Next string.json文件中如何定义字符串数组?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复
element目录中的文件名称建议与下面的文件名保持一致。每个文件中只能包含同一类型的数据。strarray,字符串数组 需要添加 strarray.json文件 ,string.json中只能放字符串,数组需要放在新建的 strarray.json中

创建资源目录和资源文件

资源分类与访问-基础入门 - 华为HarmonyOS开发者 (huawei.com)

更多关于HarmonyOS 鸿蒙Next string.json文件中如何定义字符串数组?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


请问这个json文件中的字符串数组支持动态修改吗?比如说数组中的字符串元素作为某自定义菜单的选项,用户可自定义添加和删除菜单项目的功能,能实现吗?

如果此方法不行,那么能用什么方法呢?

strarray.json

{
  "strarray": [
    {
      "name": "test",
      "value": [
        {
          "value": "abc"
        },
        {
          "value": "bcd"
        }
      ]
    }
  ]
}
[@Entry](/user/Entry)
[@ComponentV2](/user/ComponentV2)
struct Index {
  [@Local](/user/Local) list: string[] = ['a', 'b']

aboutToAppear(): void { this.list = getContext(this).resourceManager.getStringArrayValueSync($r(‘app.strarray.test’)) }

build() { Column() { ForEach(this.list, (item: string) => { Text(item.toString()) }) } } }

在HarmonyOS的Next项目中,string.json文件用于定义字符串资源。要在string.json文件中定义字符串数组,可以采用以下格式:

{
  "strings": {
    "array_name": [
      "string1",
      "string2",
      "string3"
    ]
  }
}

这里的array_name是你为字符串数组定义的名称,"string1", "string2", "string3"是数组中的具体字符串元素。

在代码中引用这个字符串数组时,你需要通过资源管理系统获取。虽然具体代码实现不在此讨论范围内,但通常可以使用类似ResourceManager.getStringArray(ResourceTable.String_array_name)的方式来获取这个数组。

注意,ResourceTable是一个自动生成的类,其中包含了所有资源(包括字符串数组)的引用。确保你的项目已经正确编译,并且资源文件已经被正确引用。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部