解决报错SyntaxError:Unexpected end of JSON input
·
需求分析
跳转页面时,需要将对象类型的数据详情一起传过去,另一个页面来显示。
// 跳转核销详情界面
jumpVerifyDetail: function (data={}) {
if(!this.judgeObjIsEmpty(data)){
const newData = JSON.stringify(data);
wx.navigateTo({
url: `./verifyDetail/index?newData=` + newData,
})
}
},
onLoad: function (options) {
const {
newData = {}
} = options;
const data=JSON.parse(newData);
},
但是报错,提示SyntaxError:Unexpected end of JSON input
问题解决
原因:若对象的参数或数组的元素中遇到地址,地址中包括?、&这些特殊符号时,对象/数组先要通过
JSON.stringify
转化为字符串再通过encodeURIComponent
编码,接收时,先通过decodeURIComponent
解码再通过JSON.parse
转换为JSON
格式的对象/数组
所以修改代码如下:
// 跳转核销详情界面
jumpVerifyDetail: function (data={}) {
if(!this.judgeObjIsEmpty(data)){
const newData = JSON.stringify(data);
wx.navigateTo({
url: `./verifyDetail/index?newData=` + encodeURIComponent(newData),
})
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
const {
newData = {}
} = options;
const verifyDetail = JSON.parse(decodeURIComponent(newData));
},
现在我们就能得到打印出来的verifyDetail了
更多推荐
已为社区贡献2条内容
所有评论(0)