正确的JSON对象标签语法

时间:2013-01-16 19:07:00

标签: php javascript json portability jslint

似乎JSON的标签上有不同的标准,有些需要JSON对象标签的引用,有些则不需要。有人能告诉我标准是什么吗?

行情是坏阵营

{"label":1111} - SyntaxError:意外的令牌:

{label:1111} - 作品

火狐

{"label":1111} - SyntaxError:无效标签

{label:1111} - 作品

行情是好营地

的JSLint

{"video_id":1111} - JSON:好。

{video_id:1111} - JSON:不好。期待一个字符串,而不是看到'vid​​eo_id'

PHP

echo json_encode(array('label' => 1111));
{"label":1111}

1 个答案:

答案 0 :(得分:13)

标准是将JSON解析为JSON。

JSON语言(与Javascript不同)总是要求所有属性名称都用双引号括起来。

您的语法错误来自于尝试将JSON解析为Javascript 语句{}被解析为语句块,label:被解析为GOTO目标。
由于语句标签不能有引号,因此会导致语法错误。

如果将JSON文字包装在括号中以强制Javascript将它们解析为表达式,则不会出现该错误。