Is null valid JSON (4 bytes, nothing else)
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?
- http://code.google.com/p/json-framework/issues/detail?id=49 seems to indicate (at the bottom) that this is invalid.
- http://json.parser.online.fr/ also flags this as invalid.
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?
RFC 7159 drops 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.
[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 [].