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
你这个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
,序列化后输出,又可以输出token
为111
在HarmonyOS中,获取JSON中的指定字符可以通过[@ohos](/user/ohos).data.preferences
模块或[@ohos](/user/ohos).util
模块实现。假设你有一个JSON字符串,首先需要将其解析为对象,然后通过键值访问对应的字符。
-
使用
[@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"对应的字符
-
使用
[@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语言。