在chrome中,使用此代码
JSON.parse('[ "Rectangle", { width: 10 } ]')
抛出一个
SyntaxError: Unexpected token w
Internet Explorer 11(.0.9600)具有类似的行为:"Invalid character"
。
根据http://json.org/的定义,显然允许使用此语法,并归结为包含两个元素的数组:字符串"Rectangle"
和具有单个属性width
的对象及其值10
它有什么问题?
答案 0 :(得分:4)
在JSON中,对象键是字符串,因此需要在它们周围加上引号
JSON.parse('[ "Rectangle", { "width": 10 } ]')
答案 1 :(得分:0)
另一种选择是先将其转换为正确的 JSON:
let obj = ["Rectangle",{ width: 10 }];
obj = JSON.parse(JSON.stringify(obj));