小程序使用weapp-qrcode.js生成二维码并存参数,扫码再获取参数时,JSON.parse()报错问题

最近小程序开发时候有这样一个需求,需要通过生成二维码,将一堆参数包含在二维码里。 二维码是使用weapp-qrcode.js生成的。参数是通过JSON.stringify()一个json对象存进去的。以上的操作都没有问题。

就在通过微信api wx.scancode扫码获取参数的时候,拿到当初存进去的json字符串,然后JOSN.parse()解析的时候出现了问题。

正常的操作
在这里插入图片描述
但是这样会报错
在这里插入图片描述
一般这种情况的报错就是说解析的不是一个正确的json字符串,但是看到我打印出来的内容 就是一个正常的json字符串。这就尴尬了


这里想了两种可以:
1、存进二维码的数据不能像存本地存储那样存,要通过转义再存储;
2、在生成二维码的同时,weapp-qrcode.js插件改变了数据结构;

然后我通过一一验证,都否定了以上的两种可能。此处暂时无解一段时间…


最后我一点点调试,我把打印出来的参数写一份到变量resultStr中,进行解析
在这里插入图片描述
在这里插入图片描述
这样操作是解析成功的。


那么问题就来了,为什么同样的数据,却一个可以一个不行呢?

刚刚是通过手写的 这次我直接复制打印出来的参数。这就发现了问题的所在
在这里插入图片描述
这里发现花括号前多了一个非法字符,这就是导致解析失败的原因!

最后我用substr(1)的方法,去掉第一个非法字符,最终解析成功了!真的是很坑,至于为什么会有这样的一个字符,我也没

搞懂,估计是weapp-qrcode.js插件有哪一步会影响到参数结构。


百度了很久 没有发现有这样的问题发生,特此记录一番,好让大家不再踩坑。



更多情感与趣味前端内容,请关注我,我们一起学习交流
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值