js为什么会报这个错误:“JSON.parse() Unexpected token i in JSON at position 2 ” 或“ Expected property * or '}' in JSON at position 2”,一般遇到这个问题就要回头仔细看看json代码了。因为它意味这JSON格式不正确或不严谨!

场景还原

let str = "[{'id':'0','name':'qiwa'}]"
let bb = JSON.parse(str)
console.log(bb)

这个时候页面就报错了:Uncaught SyntaxError: Expected property name or '}' in JSON at position 2 at JSON.parse (<anonymous>) 

解决办法:

JSON.parse()方法要求代码严谨,字符串一定要满足JSON格式化的格式,属性和键值不允许使用单引号-''包括着,必须使用双引号-""

我们将str改成以下代码就可以解决问题了:

let str = '[{"id":"0","name":"qiwa"}]'

再运行代码就不报错了。气不气,哈哈哈。

这个报错并不算代码错误,只能说js代码细节越来越严谨了,但是不解决,确实又是一个报错,代码不能执行了!算了,值得记录下这个bug,bug难度:☆