HarmonyOS 鸿蒙Next这种数据结构,在不使用生成对象解析的前提下,如何可以获取到data字段对应的json数据,直接解析对应的数组

HarmonyOS 鸿蒙Next这种数据结构,在不使用生成对象解析的前提下,如何可以获取到data字段对应的json数据,直接解析对应的数组 平台数据结构多数是{'data':[{}, {}, {}]},希望在json解析上可以不创建不必要的实体。

3 回复

可以参考以下demo

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    Column() {
      Button("点我试试")
        .onClick(() => {
          let obj: ESObject = JSON.parse('{"a":"我是外层对象属性值","b":{"m":"我是第二层属性值"},"c":[{"e":true},{"f":false},{"g":true}]}')
          console.log('获取最外层对象属性结果:' + obj['a'])
          console.log('获取第二层对象属性结果:' + obj['b']['m'])
          console.log('获取第三层对象属性结果:' + obj['c'][1]['f'])
        })
    }
  }
}

更多关于HarmonyOS 鸿蒙Next这种数据结构,在不使用生成对象解析的前提下,如何可以获取到data字段对应的json数据,直接解析对应的数组的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


如果本身是字符串的话必须用到 json 解析, 或者你自己写一个工具类去实现

如果本身不是字符串的话可以直接 as 成 object, 然后 o![‘data’] 获取到数组对象

在HarmonyOS中,如果你需要使用鸿蒙Next的数据结构,并且在不生成对象的情况下直接解析data字段对应的JSON数据,可以使用JsonObjectJsonArray来进行解析。

假设你有一个JSON字符串如下:

{
    "data": [
        {"key1": "value1"},
        {"key2": "value2"}
    ]
}

你可以通过以下步骤直接解析data字段对应的数组:

  1. 使用JsonUtil将字符串转换为JsonObject
  2. JsonObject中获取data字段对应的JsonArray
  3. 遍历JsonArray,获取其中的每个JsonObject

示例代码:

import util from '@ohos.util';

let jsonString = `{
    "data": [
        {"key1": "value1"},
        {"key2": "value2"}
    ]
}`;

let jsonObject = new util.JsonObject(jsonString);
let dataArray = jsonObject.getJsonArray('data');

for (let i = 0; i < dataArray.size(); i++) {
    let item = dataArray.getJsonObject(i);
    // 处理每个item
}

这样,你就可以直接解析data字段对应的JSON数组,而不需要生成额外的对象。

回到顶部