it-swarm-pt.tech

É JSON válido nulo (4 bytes, nada mais)

Debate quente hoje:

O fluxo de texto null é JSON válido?

De acordo com http://www.ietf.org/rfc/rfc4627.txt?number=4627 :

...
2. Gramática JSON

Um texto JSON é uma sequência de tokens. O conjunto de tokens inclui seis caracteres estruturais, cadeias, números e três nomes literais.

Um texto JSON é um objeto ou matriz serializada.

Isso deve ser interpretado como ambas as instruções, para que o texto seja JSON válido?

No entanto, muitas outras bibliotecas parecem permitir isso e, de fato, parece que um único token válido poderia ser um resultado legítimo.

Existe uma resposta definitiva?

41
Robert Altman

[Nota! Esta resposta não está mais correta, consulte a resposta de @niksnut.]

Sim, ambas as declarações devem ser verdadeiras. O token literal null é um JSON valor. Um texto JSON é um objeto ou matriz serializada, que requer {} ou [].

23
Russell Borogove

RFC 7159 elimina a limitação de que um texto JSON deve ser um objeto ou uma matriz. A gramática especifica:

JSON-text = valor ws ws

onde

valor = falso/nulo/verdadeiro/objeto/matriz/número/sequência

Portanto, "null" agora é um documento JSON válido.

41
niksnut