2

似乎在 JSON 的标签上有不同的标准,有些人想要 JSON 对象标签周围的引号,有些人不想要。谁能告诉我标准是什么?

行情是坏阵营

铬合金

{"label":1111}-语法错误:意外的令牌:

{label:1111}-作品

火狐

{"label":1111}-语法错误:标签无效

{label:1111}-作品

行情是好阵营

JSLint

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

{video_id:1111}- JSON:不好。需要一个字符串,而是看到“video_id”

PHP

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

1 回答 1

13

标准是将 JSON 解析为 JSON。

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

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

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

于 2013-01-16T19:08:24.410 回答