Composición
JSON se construye a partir de dos tipos de estructuras- Colección de pares de clave/valor.
- En lenguajes de programación se tranforman o provienen de un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un arreglo asociativo.
- Lista de valores.
- En lenguajes de programación, esto se implementa o proviene de arreglos, vectores, listas o secuencias.
Sintaxis
En el caso de objetos individuales, este esta delimitad por llaves, dentro aparecen los pares clave valor separados por dos puntos (:) cumpliéndose lo siguiente:
- La clave siempre será una cadena de texto, el valor puede ser de tipo lógico, textual o numérico.
- Los valores pueden tomar tres tipos:
- En el caso del lógico puede ser true o false sin necesidad de comillas
- En el caso del numérico se emplea el punto para separar enteros de decimales
- En el caso del texto debe ir entre comillas.
Nota: Se puede dar el caso que el valor de una clave es otro objeto o una colección de estos.
Ejemplo en código:
{
"alive":true,
"birthday":"1993-05-17",
"dni":"96584422",
"name":"Paul",
"weight":62.7
}
En el caso de colecciones de objetos, los objetos mantienen su notación anterior y se separan por comas. Además, toda la colección de objetos esta delimitada por corchetes "[" y "]"
Ejemplo en código:
[
{
"birthday":"1993-02-07",
"dni":"10084422",
"name":"Milagros",
"weight":52.7
},
{
"birthday":"1992-10-01",
"dni":"00084422",
"name":"Yadira",
"weight":57.0
},
{
"birthday":"1990-01-21",
"dni":"41557422",
"name":"Alejandra",
"weight":49.9
}
]
En el ejemplo anterior podemos encontrar una colección de tres objetos.
Anidamiento en JSON.
{
"address":{
"country":"Peru",
"department":"Lima"
},
"alive":true,
"birthday":"1993-05-17",
"dni":"96584422",
"languages":[
"Spanish",
"English"
],
"name":"Paul",
"pets":[
{
"name":"Argos",
"type":"dog"
},
{
"name":"Gardfield",
"type":"cat"
}
],
"weight":62.7
}
Se puede apreciar lo siguiente:
- La dirección esta compuesta por país y departamento.
- Tiene un campo lógico llamado "alive"
- Las fechas viajan en formato de texto
- Los números como "weight" no requieren de comillas, pero los códigos como el DNI sí.
- El campo languages tiene una colección de valores sin clave.
- En el campo "pets" el valor es una lista de dos objetos con sus propias claves y valores.