HarmonyOS 鸿蒙Next 我要怎么获取到json中的指定字符

HarmonyOS 鸿蒙Next 我要怎么获取到json中的指定字符

json格式为 {ResultObj:{AccessToken:"",…}}我需要拿到ResultObj下面的AccessToken,但是b.ResultObj.AccessToken还是b[“ResultObj”][“AccessToken”],或者直接b.AccessToken都拿不到


更多关于HarmonyOS 鸿蒙Next 我要怎么获取到json中的指定字符的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

你这个Result不是json格式,你看底下的输出,他是(json)这样的格式,是有两个括号在的……你可以先通过string操作去掉这两个括号

更多关于HarmonyOS 鸿蒙Next 我要怎么获取到json中的指定字符的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


感谢大佬,我试试,

我去除了左右括号后,输出的还是undefined,您可以再帮我看一下么?

新的图在下列回答中,

点迷。。。我看了半天感觉还是很迷,你要么直接试试,输出b.ResultObj.AccessToken看看?或者你这个b,不要用const,用let试试,

根源在于后端返回数据格式错误,让后端去改更合适

后端是一个物联网云平台,😂

我更改了一下,还是无法获取,首先去除了字符串中的()左右括号,纯输出b,看上去是正确了,但是当我b.ResultObj时,又显示undefined,但是我把b输出的字符串整个复制下来,创建了一个jsonData,序列化后输出,又可以输出token111

在HarmonyOS中,获取JSON中的指定字符可以通过[@ohos](/user/ohos).data.preferences模块或[@ohos](/user/ohos).util模块实现。假设你有一个JSON字符串,首先需要将其解析为对象,然后通过键值访问对应的字符。

  1. 使用[@ohos](/user/ohos).util模块解析JSON: 使用util模块的parse方法将JSON字符串解析为对象,然后通过键值获取指定字符。

    import util from '[@ohos](/user/ohos).util';
    
    let jsonStr = '{"name": "HarmonyOS", "version": "Next"}';
    let jsonObj = util.parse(jsonStr);
    let name = jsonObj.name; // 获取"name"对应的字符
    
  2. 使用[@ohos](/user/ohos).data.preferences模块: 如果JSON数据存储在Preferences中,可以先读取数据,再解析并获取指定字符。

    import dataPreferences from '[@ohos](/user/ohos).data.preferences';
    
    let context = ...; // 获取上下文
    let preferences = await dataPreferences.getPreferences(context, 'myPrefs');
    let jsonStr = await preferences.get('jsonKey', '');
    let jsonObj = JSON.parse(jsonStr);
    let version = jsonObj.version; // 获取"version"对应的字符
    

以上方法可以直接获取JSON中的指定字符,无需涉及Java或C语言。

回到顶部