位置:首页 > JavaScript > JavaScript >

JSON.parse(): Unexpected token i in JSON at position 2 报错问题

字号+ 作者:micloud 来源:www.seoalphas.com 2020-08-06 15:29 浏览量:4973

在小程序开发的时候,之前正常的js代码忽然报错:

1.jpg

在网上搜了下发现,原来是因为键值对未使用双引号“”包裹起来的原因,而我的程序报错的原因是在小程序端提交数据后,后端处理存储数据时,使用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格式。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • js操作radio单选框改变事件 点击radio执行相应操作

    js操作radio单选框改变事件 点击radio执行相应操作

    浏览次数:15203

  • 关于layui富文本编辑器同步编辑器内容到textarea layedit.sync(index)

    关于layui富文本编辑器同步编辑器内容到textarea layedit.sync(index)

    浏览次数:12806

  • JavaScript中对url进行编码:urlencode编码

    JavaScript中对url进行编码:urlencode编码

    浏览次数:11416

  • js清除两个数组相同数据(js两个数组对比 去除相同项得到新数组)

    js清除两个数组相同数据(js两个数组对比 去除相同项得到新数组)

    浏览次数:6879

网友点评
评论区域