Php JSON对象的正确标签语法
在JSON标签上似乎有不同的标准,有些人希望在JSON对象标签周围加引号,有些人不希望。有人能告诉我标准是什么吗 报价很糟糕 ChromePhp JSON对象的正确标签语法,php,javascript,json,portability,jslint,Php,Javascript,Json,Portability,Jslint,在JSON标签上似乎有不同的标准,有些人希望在JSON对象标签周围加引号,有些人不希望。有人能告诉我标准是什么吗 报价很糟糕 Chrome {“label”:1111}-语法错误:意外标记: {label:1111}-有效 Firefox {“标签”:1111}-语法错误:无效标签 {label:1111}-有效 报价是很好的选择 JSLint {“video_id:1111}-JSON:good {video\u id:1111}-JSON:bad。应为字符串,但看到的是“video\u id
{“label”:1111}
-语法错误:意外标记:
{label:1111}
-有效
Firefox
{“标签”:1111}
-语法错误:无效标签
{label:1111}
-有效
报价是很好的选择
JSLint
{“video_id:1111}
-JSON:good
{video\u id:1111}
-JSON:bad。应为字符串,但看到的是“video\u id”
PHP
echo json_encode(array('label' => 1111));
{"label":1111}
标准是将JSON解析为JSON JSON语言(与Javascript不同)总是要求所有属性名都用双引号括起来 您的语法错误来自尝试将JSON解析为Javascript语句。
{}
被解析为语句块,标签:
被解析为转到目标。由于语句标签不能有引号,因此会导致语法错误
如果将JSON文本用括号括起来,强制Javascript将其解析为表达式,则不会出现该错误。+1刚刚得出语句结论,尽管速度较慢:-)作为澄清,您应该始终使用
JSON.parse()
-eval解析JSON,而注入是不安全的。正如SLaks所说,由于{}
被视为一个语句/作用域块,所以会出现错误。您需要的是JSONLint,而不是JSLint。如果您在控制台中查看{label:1111}
的结果,您不会这么说。另外:该标准在上可用,但为了节省一些阅读,该标准需要在标签周围加引号。哇,我没有意识到Javascript对象和JSON之间有区别。谢谢大家的澄清!