JSON puede ser una matriz o un objeto. Específicamente fuera de json.org:
JSON se basa en dos estructuras:
- Una colección de pares de nombre / valor. En varios idiomas, esto se realiza como un objeto, registro, estructura, diccionario, tabla hash, lista con clave o matriz asociativa.
- Una lista ordenada de valores. En la mayoría de los idiomas, esto se realiza como una
matriz, vector, lista o secuencia.
Luego continúa describiendo las dos estructuras como:
Tenga en cuenta que los caracteres iniciales y finales son llaves y corchetes respectivamente.
Editar
y desde aquí: http://www.ietf.org/rfc/rfc4627.txt
Un texto JSON es una secuencia de tokens. El conjunto de tokens incluye seis caracteres estructurales, cadenas, números y tres nombres literales.
Un texto JSON es un objeto o conjunto serializado.
Actualización (2014)
A partir de marzo de 2014, hay un nuevo JSON RFC ( 7159 ) que modifica ligeramente la definición (consulte las páginas 4/5).
La definición según RFC 4627 fue: JSON-text = object / array
Esto se ha cambiado en RFC 7159 a: JSON-text = ws value ws
Donde ws
representa el espacio en blanco y value
se define de la siguiente manera:
Un valor JSON DEBE ser un objeto, matriz, número o cadena, o uno de los siguientes tres nombres literales:
false null true
Entonces, la respuesta a la pregunta sigue siendo sí, el texto JSON puede comenzar con un corchete (es decir, una matriz). Pero además de los objetos y las matrices, ahora también puede ser un número, una cadena o los valores false
, null
o true
.
Además, esto ha cambiado desde mi cita anterior RFC 4627 (énfasis agregado):
Un texto JSON es una secuencia de tokens. El conjunto de tokens incluye seis caracteres estructurales, cadenas, números y tres nombres literales.
Un texto JSON es un valor serializado . Tenga en cuenta que ciertas especificaciones anteriores de JSON restringieron un texto JSON para ser un objeto o una matriz. Las implementaciones que generan solo objetos o matrices donde se requiere un texto JSON serán interoperables en el sentido de que todas las implementaciones aceptarán estos como textos JSON conformes.
[]
, analizarla como una matriz y tomar el primer elemento de la matriz).