收藏
回答

Unexpected token c in JSON at position 0 ?

同样的代码 引用的mqtt.js是一样的 在一个程序中可以用‘ckoff1’直接发送 一个只能发送json格式的数据 发送‘ckoff1’就报以上错误 有没有大佬给点思路 我想发不是json格式的



回答关注问题邀请回答
收藏

2 个回答

  • 胖头鱼
    胖头鱼
    2021-06-24
     MessageProcess: function(topic, payload{
        var that = this;
        //var payload_string = payload.toString();
        //var jsonObj = JSON.parse(Uint8ArrayToString(payload));
        var jsonObj = JSON.parse(payload);
        var payload_areaA = jsonObj.aA;
        var payload_areaB = jsonObj.aB;
        var payload_areaC = jsonObj.aC;
        var payload_areaD = jsonObj.aD;
     
        if (topic == that.data.topic.areaTopic) {
            that.setData({
              'value.areaAValue': payload_areaA,
              'value.areaBValue': payload_areaB,
              'value.areaCValue': payload_areaC,
              'value.areaDValue': payload_areaD,
              })
        }
    
    找到问题了 发出去的数据被收到了 发出去的数据不是json格式的 所以报错 
    解决方法 
        var payload = JSON.stringify(payload)
        var jsonObj = JSON.parse(payload);
    先将收到的负荷转为json字符串格式即可
    
    2021-06-24
    有用
    回复
  • 微盟
    微盟
    2021-06-24

    你可以包一层


    const msg = xxx; // 未知数据类型
    let data = {};
    try(
      JSON.parse(msg)
    )catch{
       // 包一层变成 json
       data = {
         content: sendMsg
      }
    }
    // 发送 data;
    
    2021-06-24
    有用
    回复 2
    • 胖头鱼
      胖头鱼
      2021-06-24
      这个函数的意思是如果要发送的数据不是json格式(比如字符串),就把数据赋给data,然后发送data的意思吗
      2021-06-24
      回复
    • 微盟
      微盟
      2021-06-24回复胖头鱼
      2021-06-24
      回复
登录 后发表内容