小程序开发之问题2:传JSON对象的时候,遇到特殊字符(;/?:@&=+$,#)时解析报错

本文分享了在小程序中使用JSON.stringify和JSON.parse传递对象数据时遇到的问题及解决方案。因特殊字符导致数据截断,采用encodeURIComponent编码和decodeURIComponent解码避免了这一问题,确保了数据完整传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 在小程序端,我们是通过 JSON.stringify 和JSON.parse来在页面之间传递对象数据的,我在开发中因为有些敏感数据采用了后端加密,前端解密再调用的方式,因为特殊字符"=",导致获取到这个"="号时,后面的数据都取不到了
  • 通过查询资料分享找到了解决办法

decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码

encodeURIComponent() 函数把字符串作为 URI 组件进行编码。其中的某些字符将被十六进制的转义序列进行替换。

//页面传递时需要对该传递的对象编码,使用     encodeURIComponent()方法
wx.navigateTo({
        url: '../test/test?paras=' + encodeURIComponent(JSON.stringify(this.data))
      })

//接收对象时使用     decodeURIComponent()方法
 onLoad: function(options) {
    let paras = JSON.parse(decodeURIComponent(options.paras))
    this.setData({
      card: paras.card
    })
  },

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值