Datos JSON
En este apartado describimos brevemente cómo se estructuran lo datos JSON. Este tipo de datos suelen almacenarse en documentos de instancia JSON, pero también se pueden almacenar en un fragmento de datos JSON incluido en un documento de otro tipo. Un fragmento o un documento de datos JSON es una estructura de datos JSON como la que se describe a continuación.
XMLSpy también es compatible con JSON5, una extensión de JSON que añade algunas extensiones ECMScript 5. Consulte json5.org para obtener más información.
Objetos y matrices JSON
Un documento JSON (cuya extensión de archivo suele ser .json) está compuesto por estas estructuras de datos centrales:
Objeto
Un objeto se delimita por medio de llaves y es una colección desordenada de cero o más pares clave:valor o más. Estos pares clave:valor conforman las propiedades del objeto. La clave debe ser siempre una cadena y, por tanto, siempre debe ir entre comillas. La clave (que también se conoce como nombre de la propiedad) se separa de su valor por medio de dos puntos. El valor de una propiedad puede ser de cualquier tipo de datos JSON (ver lista más abajo). Las propiedades se separan por medio de comas. A continuación puede ver un ejemplo de un objeto con tres propiedades (todas con valores de tipo atómico):
{
"emailtype": "home",
"emailaddress": "contact01.home@altova.com",
"citycode": 22
}
Matriz
Una matriz se delimita por medio de corchetes y es una lista ordenada y separada por comas de cero o más ítems. Estos ítems pueden ser de cualquier tipo de datos JSON (ver lista más abajo).
La matriz que aparece a continuación contiene dos objetos (cada uno de ellos aparece entre llaves). La matriz propiamente dicha aparece entre corchetes.
[ { "emailtype": "home", "emailaddress": "contact01.office@altova.com", "citycode": 22 }, "emailtype": "office", "emailaddress": "contact01.office@altova.com", "citycode": 22 } ]
|
El fragmento que aparece a continuación pertenece a un objeto formado por tres pares clave:valor. Cada valor es una matriz que contiene una tupla (secuencia). Las tuplas pueden entenderse como matrices de una sola dimensión. Los tres ítems de la tupla son de tipo atómico.
{ "x": [ 1, 2, "abc" ], "y": [ 3, 4, "def" ], "z": [ 5, 6, "ghi" ] }
|
Tipos de datos JSON
Los ítems de las matrices y los valores de las propiedades de los objetos pueden tener estos tipos:
•string (cadena, que debe ir entre comillas). Además las cadenas pueden tener un formato concreto, como el formato date-time o email
•number: un número con una parte fraccionaria. Incluye números enteros
•integer: un número sin parte fraccionaria. Se trata de un subconjunto del tipo number
•boolean (true/false, no debe ir entre comillas)
•object: si se utiliza dentro de otro objeto, este tipo permite anidar datos
•array: permite generar estructuras más complejas de las que permiten los objetos
•null (null, no debe ir entre comillas)
Ejemplo de datos JSON
A continuación puede ver un ejemplo de un fragmento de datos JSON. Observe que el documento está compuesto por objetos y matrices. Fíjese también en el tipo de datos de los valores de las claves: observe que los valores de las cadenas aparecen entre comillas y los demás tipos aparecen en verde.
{
"first": "Jason",
"last": "Jones"
"isManager": true,
"age": 35,
"address": {
"street": "Jason Avenue",
"city": "Jasonville",
"state": "JS",
"postcode": "JS12 ON34"
},
"phone": [
{
"type": "home",
"number": "12 3456-7890"
},
{
"type": "office",
"number": "789 012-34567"
}
],
"children": [],
"partner": null
}
Diferencias entre JSON5 y JSON
JSON5 es un subconjunto estricto de JavaScript, añade tipos de datos JSON nuevos y funciona con todo el contenido JSON actual. Sin embargo, existen algunas diferencias entre estos dos formatos:
•JSON admite comentarios, que se delimitan así: // comentario // o /* comentario */.
•En JSON5 las claves de los pares clave:valor no tienen que estar entre comillas.
•En JSON5 se pueden escribir cadenas que ocupen varias líneas.
•Los documentos JSON5 se pueden validar con esquemas JSON.