错误原因简单来说就是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'], }); } } }) };
如果有帮助到你了
就请点个赞哇~