微信小程序 SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>)

错误原因简单来说就是JSON.parse不能二次解析已经是对象的json对象了。

源代码

function loadAD(){
      wx.request({
        url: 'https://wx.xxx.cm/Classes/AD/AD.json',
        success(res){
          var jsondata=JSON.parse(res.data);
          console.log(jsondata);
          if (jsondata['text']!=null) {
            a.setData({
              adText:jsondata['text'],
            });
          }
          if (jsondata['imgURL']!=null) {
            a.setData({
              adImg:jsondata['imgURL'],
            });
          }
        }
      })
    };
该url指向的AD.json的内容
{"text":null,"imgURL":null} 

运行错误显示

SyntaxError: Unexpected token o in JSON at position 1
    at JSON.parse (<anonymous>)
    at success (index.js? [sm]:28)
    at Function.i.<computed> (VM6677 WAService.js:2)
    at :55247/appservice/<api request success callback function>
    at VM6677 WAService.js:2
    at l (VM6677 WAService.js:2)
    at Function.<anonymous> (VM6677 WAService.js:2)
    at :55247/appservice/<NetworkRequest35success callback function>
    at VM6677 WAService.js:2
    at VM6677 WAService.js:2(env: Windows,mp,1.05.2104192; lib: 2.16.0)

错误分析及解决方案

function loadAD(){
      wx.request({
        url: 'https://wx.xxx.cm/Classes/AD/AD.json',
        success(res){
          var jsondata=JSON.parse(res.data);
                              ↑这里出现了错误
          success回调的res.data已经是解析好的json对象,无需再次JSON.parse,二次parse导致的错误产生
          解决方案:将上边这一行改成var jsondata=res.data;
=========================================================================与下边无关
          console.log(jsondata);
          if (jsondata['text']!=null) {
            a.setData({
              adText:jsondata['text'],
            });
          }
          if (jsondata['imgURL']!=null) {
            a.setData({
              adImg:jsondata['imgURL'],
            });
          }
        }
      })
    };

如果有帮助到你了

就请点个赞哇~ 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值