微信小程序,以下简称小程序。
今天跟同事对接小程序支付的时候,后端按照之前的代码将支付参数发过来,在开发者工具中能正常拉起收银台,到了手机就没办法拉起,后来经过不断的排查,是后端发送过来的object对象变成了json格式的,于是就去找后端让他改数据结构,但是无论怎么改都是传递过来的都是json格式的。android手机就存在这种问题,ios就不会,能正常拉起收银台。
于是使用JSON.parse()去转译,结果报错了,说数据不是一个json格式的类型,立刻陷入了沉思。后面同事使用apifox去请求的时候发现返回的参数前面多了一个转义字符。
我在代码里面用codePointAt去查看是不是真的存在一个隐藏的字符,结果还真有。使用for循环把第一个隐藏字符剔除之后再拼接起来,再使用JSON.parse()去转译之后就可以成功转成Object类型。
虽然把问题解决了,但是还是不知道为什么返回的数据前面会有一个隐藏的字符,希望有大佬能帮忙解决一下疑惑!