Robert Altman
Robert Altman

Reputation: 5505

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 Grammar

A 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

Answers (2)

niksnut
niksnut

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

Russell Borogove
Russell Borogove

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

Related Questions