3

例如,这应该是一个有效的 JSON 文档吗?

"foo"

json.org 上的语法规范并不完全清楚。我认为规范中的任何地方都没有说所有内容都必须位于有效 JSON 文档中的{}对象或数组中。[]

JSONLint 将独立字符串标记"foo"为错误,并期望所有内容都在{}对象或[]数组中。

但是,主要浏览器(IE 8、IE 10、Chrome 28、Firefox 23、Opera 12)的 JSON 对象可以接受独立的文字:

>>> JSON.parse('"foo"');
"foo"
>>> JSON.parse('true');
true
>>> JSON.parse('1234');
1234

与 Python 2.7+ 相同:

>>> import json
>>> json.loads('"foo"')
u'foo'
>>> json.loads('true')
True
>>> json.loads('1234')
1234

那么谁对谁错呢?

4

1 回答 1

6

在评论中找到这个

实际上有两种不同的 JSON 规范。RFC 4627 要求 JSON 文本是对象或数组。ECMA-262,第 5 版,第 15.12 节没有施加此限制。

JSON 根元素

于 2013-08-13T07:01:10.533 回答