Reputation: 5505
Hot debate today:
Is the text stream null
valid JSON?
According to http://www.ietf.org/rfc/rfc4627.txt?number=4627:
...
2. JSON GrammarA JSON text is a sequence of tokens. The set of tokens includes six structural characters, strings, numbers, and three literal names.
A JSON text is a serialized object or array.
Should this interpreted as both statements must be true in order for the text to be valid JSON?
However, many other libraries seem to permit it, and indeed, it seems like a single valid token could be a legitimate result.
Is there a definitive answer?
Upvotes: 68
Views: 28693
Reputation: 1289
RFC 7159 and its successor RFC 8259 drop the limitation that a JSON text must be an object or an array. The grammar specifies:
JSON-text = ws value ws
where
value = false / null / true / object / array / number / string
Thus, "null" is now a valid JSON document.
Upvotes: 101
Reputation: 19037
[Note! This answer is no longer correct, see answer by @niksnut.]
Yes, both statements must be true. The literal token null
is a JSON value. A JSON text is a serialized object or array, which requires {} or [].
Upvotes: 31