为什么 JSON格式的名字部分加引号?
为什么 JSON格式的名字部分加引号?
因为eval函数会将{foo:”bar”}解释成合法的JavaScript语句,而非表达式。但是人们往往想要的是让eval将这段代码解释成一个对象。所以JSON格式会强制在名字的外侧加上引号再结合圆括号,这样eval就不会错误的将JSON解释成代码块。
举例说明
eval错误解析语义
alert(eval('{foo:"bar"}')); // return "bar", incorrect
eval正确解析JSON
alert(eval('({"foo": "bar"})')); // return JSON object, correct