HarmonyOS鸿蒙Next中Json解析如何实现

HarmonyOS鸿蒙Next中Json解析如何实现

{
  "refresh_token": "36c1454f082d8",
  "code": 1,
  "message": "success"
}

我如何拿到对应code参数里面的值?

如果定义一个类 用Json.parse() 的方法可以获取code值。

let testBean = JSON.parse(data.result.toString()) as TestBean;
console.log(testBean.code + testBean.message)

但是如何不定义类,怎么获取code的值。

类似java中的,可以获取指定参数的方法。

JSONObject jsonObject = new JSONObject(s);
jsonObject.optInt("code")

鸿蒙这样的话,不定义类,怎么获取?

百度了一下说用ZSONObject,都报错

ZSONObject jsonObject = ZSONObject.stringToJsonObject(jsonString);
String name = jsonObject.get("name").toString();

更多关于HarmonyOS鸿蒙Next中Json解析如何实现的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复
let json = {
  "refresh_token": "36c1454f082d8",
  "code": 2,
  "message": "success"
} as Record<string, string | number>
console.log(json.code.toString())

更多关于HarmonyOS鸿蒙Next中Json解析如何实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,推荐使用ArkTS的@ohos.util.parse模块解析JSON。示例代码:

import parse from '@ohos.util.parse';

let jsonStr = '{"name":"HarmonyOS","version":4}';
let jsonObj = parse.parseJson(jsonStr);
console.log("解析结果:" + jsonObj.name); // 输出HarmonyOS

注意事项:

  1. 需在module.json5配置"requestPermissions": [“ohos.permission.INTERNET”](网络请求场景)
  2. 异常处理使用try-catch包裹parseJson操作,

在HarmonyOS Next中,可以使用内置的JSON解析API直接解析JSON字符串而不需要定义类。以下是两种实现方式:

  1. 使用JSON.parse()直接解析为对象:
let jsonStr = `{
  "refresh_token": "36c1454f082d8",
  "code": 1,
  "message": "success"
}`;

let jsonObj = JSON.parse(jsonStr);
console.log(jsonObj.code); // 输出1
console.log(jsonObj.message); // 输出"success"
  1. 使用@ohos.util.JSON模块(API 9+):
import util from '[@ohos](/user/ohos).util';

let jsonStr = `{
  "refresh_token": "36c1454f082d8",
  "code": 1,
  "message": "success"
}`;

let jsonObj = new util.JSON.parse(jsonStr);
console.log(jsonObj.code); // 输出1
``

这两种方式都不需要预先定义类结构,可以直接通过键名访问JSON中的值。对于你的示例JSON,使用`jsonObj.code`即可获取code参数的值。
回到顶部