微信小程序报错Unexpected end of JSON input问题分析

问题截图:

微信小程序报错Unexpected end of JSON input问题分析_第1张图片

原因分析:

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了

你可能感兴趣的:(前端,微信小程序,uni-app)