关于前端:微信小程序报错Unexpected-end-of-JSON-input问题分析

问题截图:

起因剖析:

JSON.parse无奈辨认某些url中的特殊字符,所以报错

原谬误写法:

页面跳转:

netStepFn() {
  uni.navigateTo({
    url: "/app/course/shopping?data=" + JSON.stringify(this.infoDict)
  });
},

新页面取参:

onLoad(option) {
    // console.log(JSON.parse(option.data));
    this.data = JSON.parse(option.data);
}

解决办法:

JSON.stringify()之后将变量应用encodeURIComponent函数解决,这个encodeURIComponent() 函数能够把字符串作为 URI 组件来进行编码。在跳转到指标页面接管时用decodeURIComponent对URI 组件进行解码,前面在通过JSON.parse()将变量还原,这样子就能达到预期成果了

正确代码:

netStepFn() {
  let infoDict = JSON.stringify(this.infoDict);
  uni.navigateTo({
    url: "/app/course/shopping?data=" + encodeURIComponent(infoDict)
  });
},
onLoad(option) {
    let paramsData = decodeURIComponent(option.data);
    // console.log(JSON.parse(option.data));
    this.data = JSON.parse(paramsData);
  }

ok了

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理