[英]Why is JSON.parse so picky with quotes?
基本上,我试图通过向JSON.parse()提供一个字符串来创建这样的对象:
a = {x:1}
// -> Object {x: 1}
凭直觉我尝试了:
a = JSON.parse('{x:1}')
// -> Uncaught SyntaxError: Unexpected token x
经过一番摆弄之后,我发现:
a = JSON.parse('{"x":1}')
// -> Object {x: 1}
但是后来我不小心更改了语法和奖金混淆:
a = JSON.parse("{'x':1}")
//-> Uncaught SyntaxError: Unexpected token '
所以现在我正在寻找一个解释为什么
造成混淆的主要原因似乎是JSON和JavaScript对象之间的差异。
JSON (JavaScript对象表示法)是一种数据格式,旨在允许以简单格式进行数据交换。 这就是为什么只有一种有效语法的原因。 它使解析变得容易得多。 您可以在JSON网站上找到更多信息。
有关JSON的一些注意事项:
"
"
另一方面, JavaScript对象与JSON相关(显然),但不完全相同。 有效JSON也是有效的JavaScript对象。 但是,另一种方法不是。
例如:
"
或'
引号 正如评论中指出的那样,因为这就是JSON规范指定的内容。 AFAIK的原因是JSON旨在成为一种数据交换格式(与语言无关)。 许多语言,即使是具有散列文字的语言,也不允许使用未加引号的字符串作为散列表键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.