HarmonyOS 鸿蒙Next 部分json格式的数据用JSON.parse进行转换时报错

HarmonyOS 鸿蒙Next 部分json格式的数据用JSON.parse进行转换时报错 报错内容为Unexpected Text in JSON

![](

13 回复

JSON.parse(JSON.stringify(’${data.result}’)).result.name

鸿蒙的代码数据类型转换经常出问题,我现在都是先转字符串再解析json

更多关于HarmonyOS 鸿蒙Next 部分json格式的数据用JSON.parse进行转换时报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这样的话报错是不报错了,但是读取数据会变成undefined,但是我读取的数据确实是我已经定义好了的,赋了初值也不行,

同遇到这坑烦了一天,谢谢大佬相助!!,

data.result.toString() 改成 data.result as string

装上DevEco-Studio5.0才出现了这个问题,有什么解决办法吗?

我现在也没有解决这个问题🥲,

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

现在能访问了,昨天网可能有些问题

我自己写了段代码试了下,请求"https://api.nmb.best/api/ref?id=50000061"会报错,请求"https://api.apiopen.top/api/sentences"不会

对于那些解析报错的json数据,如果不对其进行处理直接打印data.result的话,会得到一个这样的东西:

cke_2233.png

正常不报错的数据直接打印data.result会正常显示:

cke_10464.png

实在不理解…

希望有大佬能解答我的疑惑,感激不尽

这是我找到的能正常转换的:api.apiopen.top/api/sentences,然后将这个一改成:api.nmb.best/api/ref?id=50000061就不行了,这两个都是能直接访问的

需要看看详细的相关代码, 可能能进一步判断

感谢大佬回复,代码贴楼下了,很奇怪的是有的api能正常获取到数据并用JSON.parse转换,但是有的就不行,明明都是能直接在浏览器上打开直接得到json格式的数据的。postman也是能正常得到数据的。

在HarmonyOS Next中,使用JSON.parse进行JSON格式数据转换时,可能会遇到以下几种常见的报错原因:

  1. JSON格式不规范:如果JSON字符串格式不符合标准,如缺少引号、逗号或括号不匹配,JSON.parse会抛出语法错误。

  2. 特殊字符未转义:JSON字符串中的特殊字符(如双引号、反斜杠等)未正确转义,会导致解析失败。

  3. 数据类型不支持:JSON标准支持的数据类型有限,如果包含不支持的类型(如函数、undefined等),JSON.parse无法处理。

  4. 编码问题:JSON字符串的编码不一致,可能导致解析失败。确保使用UTF-8编码。

  5. JSON字符串包含BOM(字节顺序标记):BOM在某些情况下会导致解析错误,需移除BOM后再解析。

解决方法包括但不限于:

  • 使用在线JSON验证工具检查JSON格式。
  • 确保特殊字符正确转义。
  • 移除不支持的数据类型。
  • 统一使用UTF-8编码。
  • 移除JSON字符串中的BOM标记。

以上是JSON.parse在HarmonyOS Next中报错的常见原因和解决方法。

回到顶部