解决报错问题: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);
 },

成功结果: 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值