似乎JSON的标签上有不同的标准,有些需要JSON对象标签的引用,有些则不需要。有人能告诉我标准是什么吗?
铬
{"label":1111}
- SyntaxError:意外的令牌:
{label:1111}
- 作品
火狐
{"label":1111}
- SyntaxError:无效标签
{label:1111}
- 作品
的JSLint
{"video_id":1111}
- JSON:好。
{video_id:1111}
- JSON:不好。期待一个字符串,而不是看到'video_id'
PHP
echo json_encode(array('label' => 1111));
{"label":1111}
答案 0 :(得分:13)
标准是将JSON解析为JSON。
JSON语言(与Javascript不同)总是要求所有属性名称都用双引号括起来。
您的语法错误来自于尝试将JSON解析为Javascript 语句。 {}
被解析为语句块,label:
被解析为GOTO目标。
由于语句标签不能有引号,因此会导致语法错误。
如果将JSON文字包装在括号中以强制Javascript将它们解析为表达式,则不会出现该错误。