收藏
回答

同样的JSON字符串使用JSON.parse()解析为什么第二次才能成功?

蓝牙发送相同的JSON字符串到小程序,使用JSON.parse()解析解析总是报SyntaxError: Unexpected token '',... is not valid JSONat JSON.parse (<anonymous>),再次发送相同的数据能够正常解析,发送的字符串:{"len":123,"key":"version=2018-10-31&res=products%2FOU08sZr7Ls%2Fdevices%2Fesp8266&et=2526301288&method=md5&sign=jky1Rnu5YyaaEqQCFkHBqA%3D%3D"}

wx.onBLECharacteristicValueChange(function (res) {

                  let value = ab2str(res.value)

                  if(that.data.showData = null){

                    revData =''

                  }

                  revData += value //数据叠加,防止覆盖

                  if (revData.indexOf("}") >= 0) {

                    console.log('包含此字符串')

                    that.setData({

                      showData: revData

                    })

                    revData ='' //完成接收后清空数据,防止数据叠加

                    let jsonStr = that.data.showData

                    jsonStr = jsonStr.replace(" ", "");

                    if (typeof jsonStr != 'object') {

                      jsonStr = jsonStr.replace(/\ufeff/g, ""); 

                      var jsonObj = JSON.parse(jsonStr);

                      console.log("jsonObj类型:", typeof jsonObj)

                      console.log("JSON:", jsonObj) 

                      console.log("key:", jsonObj.key) 

                    }

                })

              }

            })

第一次发送:

第二次发送:能够正常解析

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

2 个回答

  • xueyu
    xueyu
    2023-10-20

    打印出来的两个字符串一模一样的,搞不明白为什么第一次转换就是不成功

    2023-10-20
    有用
    回复
  • краб
    краб
    2023-10-20

    打印一下两次的 jsonStr 呢?

    2023-10-20
    有用
    回复
登录 后发表内容