2011-12-15 58 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文檔。