JSON pode ser uma matriz ou um objeto. Especificamente fora do json.org:
JSON é construído em duas estruturas:
- Uma coleção de pares nome / valor. Em vários idiomas, isso é realizado como um objeto, registro, estrutura, dicionário, tabela de hash, lista de chaves ou matriz associativa.
- Uma lista ordenada de valores. Na maioria dos idiomas, isso é realizado como uma
matriz, vetor, lista ou sequência.
Em seguida, descreve as duas estruturas como:
Observe que os caracteres inicial e final são colchetes e colchetes, respectivamente.
Editar
E a partir daqui: http://www.ietf.org/rfc/rfc4627.txt
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.
Atualização (2014)
Em março de 2014, existe um novo JSON RFC ( 7159 ) que modifica ligeiramente a definição (consulte as páginas 4/5).
A definição de acordo com a RFC 4627 foi: JSON-text = object / array
Isso foi alterado no RFC 7159 para: JSON-text = ws value ws
Onde ws
representa espaço em branco e value
é definido da seguinte maneira:
Um valor JSON DEVE ser um objeto, matriz, número ou string ou um dos três nomes literais a seguir:
false null true
Portanto, a resposta para a pergunta ainda é sim, o texto JSON pode começar com um colchete (ou seja, uma matriz). Mas, além de objetos e matrizes, agora também pode ser um número, sequência ou valores false
, null
ou true
.
Além disso, isso foi alterado em relação à minha citação anterior do RFC 4627 (ênfase adicionada):
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 valor serializado . Observe que certas especificações anteriores do JSON restringiam um texto JSON a ser um objeto ou uma matriz. As implementações que geram apenas objetos ou matrizes nas quais um texto JSON é solicitado serão interoperáveis no sentido de que todas as implementações os aceitarão como textos JSON em conformidade.
[]
, analisá-la como uma matriz e usar o primeiro elemento da matriz.)