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
不知道是因为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 "";
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 如何解析json字符串?
590浏览 • 1回复 待解决
如何解析JSON字符串?
1277浏览 • 1回复 待解决
嵌套JSON字符串解析问题
2071浏览 • 1回复 待解决
HarmonyOS 服务端JSON字符串解析问题
593浏览 • 1回复 待解决
HarmonyOS中如何解析JSON字符串为实例对象?
180浏览 • 0回复 待解决
如何打印JSON对象和JSON字符串
404浏览 • 1回复 待解决
httqRequest的extraData中value中无法解析JSON字符串怎么处理?
7473浏览 • 1回复 待解决
如何实现Map转JSON字符串
1142浏览 • 1回复 待解决
Web组件接收超长的字符串时会被截断
271浏览 • 1回复 待解决
如何判断一个字符串是不是JSON字符串?
602浏览 • 1回复 待解决
HarmonyOS 网络请求回来的Json字符串如何解析为实体类
42浏览 • 2回复 待解决
如何将对象转为JSON字符串?
599浏览 • 1回复 待解决
怎么动态组装一个json字符串?
297浏览 • 1回复 待解决
如何将JSON字符串转Class对象
489浏览 • 1回复 待解决
ArkTS中,HashMap对象怎么转成 json字符串?
395浏览 • 1回复 待解决
如何将JSON字符串转为Map
341浏览 • 1回复 待解决
HarmonyOS json解析特殊字符
24浏览 • 1回复 待解决
如何实现将JSON字符串转化为特定对象?
892浏览 • 1回复 待解决
HarmonyOS string.json文件中如何定义字符串数组?
49浏览 • 1回复 待解决
HarmonyOS Json字符串与Map集合对象如何互转?
230浏览 • 1回复 待解决
检查字符串是否以给定的字符串开头
549浏览 • 1回复 待解决
HarmonyOS使用JSON.stringify未能得到正确的json字符串数据
591浏览 • 1回复 待解决
HarmonyOS HasMap通过\u0008JSON.stringify()生成json字符串为‘{}’
293浏览 • 1回复 待解决
HarmonyOS 3.1/4 版本 多层json字符串如何解析?不想要一层对象挨个转换那种
2540浏览 • 1回复 待解决
HarmonyOS字符串替换问题
908浏览 • 1回复 待解决
参考如下demo,日志过长需要进行分段打印: