JSON.parse(): Unexpected token i in JSON at position 2 报错问题
作者:Alpha时间:2020-08-06 阅读数:5661 +人阅读
在小程序开发的时候,之前正常的js代码忽然报错:
在网上搜了下发现,原来是因为键值对未使用双引号“”包裹起来的原因,而我的程序报错的原因是在小程序端提交数据后,后端处理存储数据时,使用htmlspecialchars_encode()进行了转码,需要将从从数据库取出的数据进行再次转码htmlspecialchars_decode()。
例如:
错误代码:
var res = "[{id:1,name:'liming'},{id:2,name:'xiaobai'}]"; var objRes = JSON.parse(res); console.log(objRes)
正确代码:
var res = '[{"id":1,"name":"liming"},{"id":2,"name":"xiaobai"}]'; var objRes = JSON.parse(res); console.log(objRes)
总结:
在使用JSON.parse的时候,返回来的数据一定是严格的json格式,key值一定要用 双引号 包起来,否则浏览器就会抛出异常。
另外,对于不标准的json字符串,如第一种示例,使用eval()虽然可以正常解析,但是从安全的角度来讲,一定要谨慎使用eval方法。规范json格式。
本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。
如果侵犯了你的权益请来信告知我们删除。邮箱:595397166@qq.com