2011-12-15 57 views
28

热议的今天:为null有效的JSON(4个字节,没有别的)

是文本流null有效的JSON?

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

...
2. JSON语法

甲JSON文本是令牌的序列。这组令牌包括 六个结构字符,字符串,数字和三个字面 名称。

JSON文本是一个序列化的对象或数组。

这应该解释为两个语句必须是真实的,以便文本是有效的JSON?

然而,许多其他图书馆似乎允许它,而事实上,它看起来像一个有效令牌可能是一个合法的结果。

是否有确定的答案?

回答

20

是的,两个陈述必须是真实的。字面标记null是JSON 的值。 JSON文本是序列化的对象或数组,需要{}或[]。

+0

它是如何来那么最JSON解析器那里接受'零”作为有效证件?一个典型的例子是Node.js的(JSON.parse( '零')=>空值或回波 'NULL' |。蟒-mjson.tool =>空 – whaefelinger 2012-02-09 09:42:20

+1

回波 '7' |蟒-mjson.tool收率7,所以我。推断工具显然是愿意解析孤立JSON文字值,以及完整的(对象或数组)JSON文本 – 2012-02-09 18:43:04

10

RFC 7159删除了JSON文本必须是对象或数组的限制。语法指定:

JSON-文本= WS值的WS

其中

值=假/空/真/对象/阵列/数字/串

因此,“null”现在是一个有效的JSON文档。