JSON.parse在带对象的数组上失败

时间:2014-03-21 05:21:31

标签: javascript json

在chrome中,使用此代码

JSON.parse('[ "Rectangle", { width: 10 } ]')

抛出一个

SyntaxError: Unexpected token w

Internet Explorer 11(.0.9600)具有类似的行为:"Invalid character"

根据http://json.org/的定义,显然允许使用此语法,并归结为包含两个元素的数组:字符串"Rectangle"和具有单个属性width的对象及其值10

它有什么问题?

2 个答案:

答案 0 :(得分:4)

在JSON中,对象键是字符串,因此需要在它们周围加上引号

JSON.parse('[ "Rectangle", { "width": 10 } ]')

答案 1 :(得分:0)

另一种选择是先将其转换为正确的 JSON:

let obj = ["Rectangle",{ width: 10 }];
obj = JSON.parse(JSON.stringify(obj));