微信小程序之页面跳转传参数据:json 字符串转对象报错

工作中遇到了这个问题,之前也有遇到过,只是没有去研究这个问题,接下来简单说明一下。

(一)问题详情

我们在小程序的A页面向B页面跳转的时候,传了页面参数为param(页面参数值只能是字符串,参数值是根据用户点击的信息而不同的),所以传数组或对象需要使用JSON.stringify()转换,到了B页面需要将param获取到并通过JSON.parse()解析,结果问题是有些传过来json正常解析,有些则报这个错:
json解析报错

也就是说B页面获取到的参数param值格式不是json格式,但是我是通过JSON.stringify()做数据转换的,格式有问题A页面跳转就会报错了,所以是参数传输过程微信小程序官方工具做了处理。

(二)问题原因

查了一下,可以正确从A页面跳转到B页面带参数正常显示的,和不正常显示的控制台输出对比一下,发现原来是这个原因造成的。-_-

1、json解析正常页面获取到的数据格式是完整的:
正常页面
2、json解析错误不正常页面显示获取到的数据是不完整的:
不正常解析

总结: 由于页面传输的数据太大,导致部分传输的数据内容被截断,导致json格式解析报错,微信官方是有限制页面跳转参数数据大小的,本人忘记了,知道的欢迎留言哈。

(三)解决方法

1、通过A页面设置缓存数据到B页面获取缓存到的数据格式来传输,不过不推荐,因为缓存数据大小也是有限制的,不适合大数据格式的缓存,小数据是可以的。
2、通过A页面传一个id到B页面,然后再重新请求接口获取新数据。
3、可以通过将A页面需要传的数据赋值给全局变量app.js中的全局变量,然后B页面getApp()获取全局变量就可以了(推荐,经常用)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值