2

在这里检查:

http://www.json.org/

和这里:

http://www.ietf.org/rfc/rfc4627.txt?number=4627

我所看到的是名称必须是字符串,而不是它们不能使用单引号。不要误会我的意思,我支持 JSON 的引用名称。它可以防止开发人员使用不是合法的 JS 变量名称的属性名称,并且 JSON 的强大使用经常将传统值放入属性名称中,例如二维数组建模表的地图缩减。

我还认为所有名称都一致地使用一种或另一种引号类型是有意义的,以避免人们在尝试用某种没有方便的 JSON 解析库/本机方法的语言解析 JSON 时可能做出的假设出它的毛孔,但我在这些规格中没有看到任何坚持它必须是双重或单一的。

我在第二个链接中看到的是它们必须是字符串。正如许多 JSON 验证器所认为的那样,它们必须被双引号在哪里确定?还有其他来源吗?如果是这样,谁拥有 JSON 镇?我感觉自己像个迷路的衣衫褴褛的人。

4

2 回答 2

3

从您链接到的 RFC 第 4 页:

string = quotation-mark *char quotation-mark
...
quotation-mark = %x22      ; "

属性名称必须是字符串,但字符串必须用引号(而不是撇号)分隔。

另请参见json.org上的字符串图。请注意,它以"允许'作为替代的分支而不是分支开始和结束。

于 2013-01-29T16:34:48.963 回答
2

取自http://www.json.org网站:

字符串定义为用双引号括起来的字符序列。

在 RFC 中:

string = quotation-mark *char quotation-mark

在哪里

quotation-mark = %x22      ; "
于 2013-01-29T16:35:00.613 回答