【发布时间】:2011-05-11 05:29:17
【问题描述】:
根据 Crockford 的json.org,一个 JSON object 是由 members 组成的,它由 pairs 组成。
每一对都由一个字符串和一个值组成,其中一个字符串被定义为:
字符串是零个或多个的序列 Unicode 字符,双包裹 引号,使用反斜杠转义。一种 字符表示为单个 字符串。一根弦很 很像 C 或 Java 字符串。
但实际上大多数程序员甚至不知道 JSON 键应该用双引号括起来,因为大多数浏览器不需要使用双引号。
用双引号将 JSON 括起来有什么意义吗?
有效示例:
{
"keyName" : 34
}
相对于无效:
{
keyName : 34
}
【问题讨论】:
-
"何必做对了呢?"这种懒惰的想法会导致网站上充斥着无效的标记。在某些浏览器确实需要双引号的情况下,让您的代码面向未来。
-
"何必做对了呢?" - 如果没有真正的好处,为什么还要费心遵循其他人没有的约定?也许你把懒惰的思维和实用主义混为一谈了。
-
@Mark - “其他人都没有”......你从哪里得到这个想法? 每个主要平台中内置的 JSON 序列化程序都会正确引用。
-
@Mark Rogers PHP json_encode 函数生成有效的 JSON,例如带有双引号的字符串。也许您正在考虑 JavaScript 中的对象字面量?确实,那些不引用密钥就可以工作,但这不是 JSON。
-
作为记录,几年前当我发布这个时,我对@JAL 建议的 JSON 和对象文字表示法之间的区别感到困惑。两者的语法非常相似,这最终导致在描述问题时有些混乱。
标签: javascript json browser double-quotes