解决报错问题:SyntaxError:Unexpected end of JSON input 参数

一、问题

        

在跳转页面时,路径需要带一些参数类型,query和params,当带入params为一个对象的时候,首先要把对象转为字符串类型,然后在对应的页面转为所需对象从而实现效果 

 A传递页面:

GetAddContainer(e){
    let money = e.currentTarget.dataset.money
    console.log(money);
    const data = JSON.stringify(money)
    wx.navigateTo({
      url: `/pages/tixian/tixian?data=` +data,
    }) 
},

 B接收页面:

onLoad(options) {
    let valOptions = JSON.parse((options.data))
    this.setData({
      tixianUserInfo:valOptions,
    })
    this.getstoreInfo()
    console.log(this.data.tixianUserInfo);
},

二、解决

 如若传递参数未包含 ?& * 等特殊字符,可正常传递,如若包含特殊字符其中一类,即会出现以上问题,可通过在传递参数的时候携带encodeURIComponent特殊解决编码,再在接受参数的时候进行使用decodeURIComponent特殊解决编码,进行解析特殊字符

A传递页面: 

GetAddContainer(e){
    let money = e.currentTarget.dataset.money
    console.log(money);
    const data = JSON.stringify(money)
    wx.navigateTo({
      url: `/pages/tixian/tixian?data=` + encodeURIComponent(data),
    })
},

B接收页面: 

onLoad(options) {
    let valOptions = JSON.parse(decodeURIComponent(options.data))
    this.setData({
      tixianUserInfo:valOptions,
    })
    this.getstoreInfo()
    console.log(this.data.tixianUserInfo);
 },

成功结果: 

猜你喜欢

转载自blog.csdn.net/frelly01/article/details/132604463