最近在学习小程序时候,发现后台返回的JSON数据字符串转JSON出错,如下:
转换语句:if (JSON.parse(uploadFileRes.data).code == 401) {//开始出错
SyntaxError: Unexpected token in JSON at position at JSON.parse (<anonymous>)
E文不太好,大致意思是JSON格式出错,我就把文本复制进行在线检查,没又问题,没办法,只能百度,解决办法如下:
1 修改为echo json_encode($data,true),测试没用。
2 字符串有不同的类型,我试着用JSON.stringify(uploadFileRes.data).code==1),同样报错
3 用了百度的N种方法没卵用。
4 最后看到有篇文章说是开始有个空字符导致,转为整数就可以了,但给了我一个思路,我想能不
能把这个字符截取掉,不就可以了吗?马上开干
if (JSON.parse(uploadFileRes.data.slice(1)).code == 401) {///
在这个uploadFileRes.data做了一个截取,就可以了。
困扰我2天的问题终于解决了,万岁万岁,太开心了。
解决JSON解析错误:空字符导致的问题
博主在学习小程序开发时遇到后台返回的JSON数据解析错误,由于JSON字符串开头存在不可见字符导致SyntaxError。尝试了多种解决方法,包括修改PHP的json_encode输出和使用JSON.stringify,问题仍未解决。最终发现是字符串开始有一个空字符,通过截取字符串从第二个字符开始解析成功解决了问题。
7117

被折叠的 条评论
为什么被折叠?



