在尝试评估以下内容时,我在chrome和firefox开发人员工具中都遇到错误:
{
"a": "",
"b": ""
}
jsonlint.com告诉我这是有效的。将此代码放在实际的javascript文件中并运行它可以正常工作。只有当我在Chrome开发人员工具或firebug中在控制台中运行时,才会出现这种奇怪现象。这是怎么回事?
答案 0 :(得分:9)
您无法在控制台中执行JSON。 JavaScript引擎认为它是一个带有标签的块语句。
所以这个:
{
"a": "", "b": ""
}
被解释为块语句。 接下来,"a":
部分被解释为标签。 "", "b"
part被解释为一个表达式(两个字符串文字和中间的逗号运算符)。现在第二个:
字符在该位置无效... "a"
被解释为字符串文字,:
在该位置无效。
您可以像这样使用JSON:
.json
文件JSON.parse()
的对象。(例如,您也可以将JSON数据保存为变量中的字符串,或者保存在localStorage
对象中。无论哪种方式,对于JavaScript,JSON数据应始终作为字符串值。)< / p>
答案 1 :(得分:7)
实际上,对于一次性测试(我主要使用调试控制台),您可以输入JSON对象语法,但您必须将其分配给变量:
> var x ={
"a": "",
"b": ""
}
undefined
> x
Object
a: ""
b: ""
__proto__: Object