HarmonyOS 鸿蒙Next:Error message: Unexpected Object in JSON 使用JSON.parse()解析JSON报文报错

HarmonyOS 鸿蒙Next:Error message: Unexpected Object in JSON 使用JSON.parse()解析JSON报文报错

使用TCP socket协议接收到服务器返回的字符转成JSON时报错,单独创建同样的字符串JSON解析就没问题。

看了论坛里其他帖子按照他们的方法试了都无效。

定义的JSON

class subInfo{
  name:string
  date:string
}
class DirListJson{
  path:string
  sub:subInfo[]
};
let mSocket = socket.constructTCPSocketInstance()
TCP报文返回
mSocket.on('message', value => {
      if (value.message.byteLength>1) {
        console.log(String.fromCharCode.apply(null,new Uint8Array(value.message)));
        var retJSON:DirListJson=JSON.parse(String.fromCharCode.apply(null,new Uint8Array(value.message)));
        console.info(JSON.stringify(retJSON))
        console.log(retJSON.path);
      }
    });

报错内容

cke_14207.png


更多关于HarmonyOS 鸿蒙Next:Error message: Unexpected Object in JSON 使用JSON.parse()解析JSON报文报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

楼主您好,根据报错信息,请检查服务端回传的JSON字符串格式是否正确。

更多关于HarmonyOS 鸿蒙Next:Error message: Unexpected Object in JSON 使用JSON.parse()解析JSON报文报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


查询过是正确的,我把服务器回传的字符串新建到一个变量里面可以正确解析,

楼主您好,根据您的描述,那就把回传的字符串新建到一个变量里面,然后再解析,

楼主解决了嘛,

基本信息

<div>
    <p>我遇到一个问题:</p>
    <pre><code class="lang-java">public class Test {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}</code></pre>
    <p>希望得到帮助。</p>
</div>

针对帖子标题“HarmonyOS 鸿蒙Next:Error message: Unexpected Object in JSON 使用JSON.parse()解析JSON报文报错”的问题,以下是专业回答:

在HarmonyOS鸿蒙Next系统中,使用JSON.parse()方法解析JSON报文时遇到“Unexpected Object”错误,通常意味着提供给JSON.parse()的字符串不是有效的JSON格式。这可能是因为报文内部包含了非法的对象结构,或者报文在传输过程中被损坏。

要解决这个问题,请按照以下步骤操作:

  1. 检查JSON报文:确保报文符合JSON格式规范。特别是检查是否有多余的逗号、花括号或方括号,以及所有的键值对是否正确闭合。

  2. 验证报文完整性:确认报文在传输过程中没有被截断或修改。

  3. 使用JSON验证工具:利用在线JSON验证工具检查报文的合法性。

  4. 调试和日志:在解析JSON之前,打印出报文内容,以便进行人工检查。

如果以上步骤无法解决问题,可能是报文本身的问题或者系统环境对JSON解析有特定要求。此时,应进一步检查报文来源和系统日志,以获取更多线索。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部