1
148
之所以JSON键应该用引号括起来,真正的原因在于ECMAScript 3标识符的语义。 Reserved words 不能用作 属性名称 在不带引号的对象文本中,例如:
如果使用引号,则属性名称有效:
克罗克福德自己解释的 this talk ,他们希望保持JSON标准的简单性,并且不希望对其进行所有语义限制:
ECMAScript第5版标准修复了这一点,现在在ES5实现中,即使保留字也可以在对象文本和成员访问中不加引号地使用(
为了便于记录,这个标准现在正由软件供应商实现,您可以看到哪些浏览器包含这个特性 compatibility table (见 保留字作为属性名 ) |
2
16
是的,它是无效的JSON,在很多情况下会被拒绝,例如jQuery 1.4+有一个检查,使得未引用的JSON无声地失败。为什么? 不 顺从? 再举一个例子:
……所有这些 将 使用引号是有效的,为什么不保持一致并在所有情况下都使用它们,从而消除出现问题的可能性? 在web开发人员世界中,有一个更常见的例子:在大多数浏览器中有成千上万的无效HTML呈现的例子……这是否会减少调试或维护的痛苦?一点也不,恰恰相反。
同时@
Matthew
在下面的评论中提出了最好的观点
已经
失败,未引用的键将抛出语法错误
|
3
-3
YAML实际上是JSON的超集,它支持您想要做的事情。虽然它是一个超集,但它可以让你保持你想要的简单。 山药是一种新鲜空气,也许值得你花时间看看。最好从这里开始: http://en.wikipedia.org/wiki/YAML 太阳底下的每种语言都有lib,包括JS,eg https://github.com/nodeca/js-yaml |
RCat · Ansible shell命令-具有特殊字符的a“ 7 年前 |
spalac24 · Bash如何处理双引号内的括号? 7 年前 |
alig227 · 如何用双引号括住字符串 7 年前 |
Marco Bernardini · 显示带有引号的URL的输入字段 9 年前 |
user4487475 · R-将信息保留在双引号内 10 年前 |
il_mix · 带有数组值的bash双引号行为[closed] 10 年前 |
abkrim · 转义单引号ssh远程命令 11 年前 |