HarmonyOS 超长JSON字符串解析
在实际的项目中将后台配置的JSON字符串下载在手机中(其他系统是用的SP存储)然后进行解析,拿到里面的内容。
在HarmonyOS 中,初期计划下载下来用首选项进行存储,但了解到首选项存储不料这么长的字符串。所以存储成了文件。
当前困难影响:
在获取文件中内容 时,我定义了
@State jsGlobalConfig:string=''
在while中来进行接收
this.jsGlobalConfig = this.jsGlobalConfig+value.toString()
但报错了:
[nodict][common_func.cpp:122->GetActualLen] Invalid option.length
[nodict][common_func.cpp:371->GetReadArg] Failed to get actual length
[nodict][prop_n_exporter.cpp:388->ReadSync] Failed to resolve buf and options
[nodict][ecmascript] Pending exception before IsMixedDebugEnabled called in line:3320, exception details as follows:
[nodict]Error: Invalid argument
- 1.
- 2.
- 3.
- 4.
- 5.
不知道是因为string的长度有限,不能存储太长的字符串还是因为什么。
1、我应该用什么来接收超长JSON字符串
2、如何进行解析,拿到里面的数据。
以下是我们项目中的部分解析代码。
String jsGlobalConfig = “实际获取到的超长JSON字符串”
JSONObject jsonObject = new JSONObject(jsGlobalConfig);
JSONArray pagesArray = jsonObject.optJSONArray("pages");
String pathname = getUrlSubstring(pathName);
String matchUrl = "";
for (int i = 0; i < pagesArray.length(); i++) {
if (pathname.equals(pagesArray.get(i).toString())) {
matchUrl = pagesArray.get(i).toString();
break;
}
}
JSONObject rulesObject = jsonObject.optJSONObject("rules");
JSONObject targetObject = rulesObject.optJSONObject(matchUrl);
String navigationBarBackgroundColor = targetObject.optString("navigationBarBackgroundColor");
//获取URL 中的路由进行精准匹配
public String getUrlSubstring(String url) {
if (url.contains(AnDunServiceGenerator.FORMAL_PATH)) {
//站内链接
String baseString = AnDunServiceGenerator.FORMAL_PATH;
int comIndex = url.indexOf(baseString) + baseString.length();
if (url.contains("?")) {
int questionMarkIndex = url.indexOf("?");
return url.substring(comIndex, questionMarkIndex);
} else {
return url.substring(comIndex);
}
} else {
//站外链接 //eg:https://www.huawei.com/cn/?ic_medium=direct&ic_source=surlent
return "";
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
HarmonyOS
赞
收藏 0
回答 2
相关问题
嵌套JSON字符串解析问题
2419浏览 • 1回复 待解决
如何解析JSON字符串?
1668浏览 • 1回复 待解决
HarmonyOS 如何解析json字符串?
1173浏览 • 1回复 待解决
关于鸿蒙arkts解析json字符串问题
707浏览 • 1回复 待解决
HarmonyOS 服务端JSON字符串解析问题
897浏览 • 1回复 待解决
HarmonyOS中如何解析JSON字符串为实例对象?
421浏览 • 0回复 待解决
HarmonyOS key中包含点的Json字符串怎么解析?
363浏览 • 2回复 待解决
HarmonyOS 关于preferences 存超长字符串报错
275浏览 • 1回复 待解决
如何打印JSON对象和JSON字符串
761浏览 • 1回复 待解决
HarmonyOS url里的字符串怎么解析
250浏览 • 1回复 待解决
httqRequest的extraData中value中无法解析JSON字符串怎么处理?
7692浏览 • 1回复 待解决
Web组件接收超长的字符串时会被截断
503浏览 • 1回复 待解决
HarmonyOS ArkTS生成JSON字符串,在嵌套的情况下生成的JSON字符串有问题
522浏览 • 1回复 待解决
如何实现Map转JSON字符串
1584浏览 • 1回复 待解决
HarmonyOS url.URLParams解析复杂字符串不对
181浏览 • 1回复 待解决
HarmonyOS 网络请求回来的Json字符串如何解析为实体类
240浏览 • 2回复 待解决
如何判断一个字符串是不是JSON字符串?
978浏览 • 1回复 待解决
HarmonyOS 读取本地json文件转成字符串
450浏览 • 1回复 待解决
如何将对象转为JSON字符串?
930浏览 • 1回复 待解决
HarmonyOS JSON.parse解析json字符串,不能识别嵌套的双引号转义,会直接报错
444浏览 • 1回复 待解决
HarmonyOS URI字符串怎么解析获取参数列表
562浏览 • 1回复 待解决
如何将JSON字符串转为Map
661浏览 • 1回复 待解决
HarmonyOS Json字符串在ArkTS中怎么单独把key和value拼接成字符串
205浏览 • 1回复 待解决
怎么动态组装一个json字符串?
550浏览 • 1回复 待解决
如何将JSON字符串转Class对象
809浏览 • 1回复 待解决
参考如下demo,日志过长需要进行分段打印:
https://ost.51cto.com/answer/38698,看看这里试试?