JSON es una notación que se basa en la forma que tiene JavaScript de guardar la información de los datos. A diferencia de XML su validación dependen del software que lo procese, pero resulta muy útil gracias a que esta orientado a objetos y que reduce consideramente los caracteres que definen su estructura, dejando prácticamente todo el peso del documento a los datos que contiene.
Para crear un documento JSON debemos seguir las siguientes reglas:
- Los datos deben estar separados por comas.
- Los datos se pondrán con la estructura «clave:valor».
- Tanto las claves como los valores irán entre comillas.
- Los objetos JSON se definen por llaves “{}”.
- Los arrays van con corchetes [].
- Tanto los objetos como los arrays pueden contener otros objetos o arrays.
|
1 2 3 4 5 6 7 8 9 10 11 |
{ "nombre":"Jose", "edad":"20", "genero":"masculino", "email":"correodejose@dominio.com", "localidad":"Madrid", "telefono":"91000000", "mando":"true", "marco": "<iframe width=560 height=315 src=https://www.youtube.com/embed/QCEU- vba8mw frameborder=0 allowfullscreen></iframe>" } |
Partiendo del ejemplo representado vemaos las diferentes posibilidades que nos da JSON, para el alamacenamiento de los datos.
- Para definir un objeto utilizamos las llaves {}.
{
«nombre»:»valor»
}
- Para definir varios elementos los separaremos por comas «,».
{
«nombre»:»Juan»,
«apellidos»:»Gonzalez»
}
- También podemos poner varios objetos, igualmente los separamos por comas «,».
{
«nombre»:»Juan»,
«apellidos»:»Gonzalez»
},
{
«nombre»:»María»,
«apellidos»:»Alonso»
},
{
«nombre»:»José»,
«apellidos»:»amohedo»
}
- JSON permite la definición de arrays con el uso de los corchetes [ ].
{
«nombre»:»juan»,
«edad»:30,
«coches»:[ «Ford», «BMW», «Fiat» ]
}
- Los arrays pueden contener tanto valores como objetos.
Recuerda, un array es un conjunto de elementos organizados en memoria en posiciones contiguas. Todos los elementos son del mismo tipo y se puede acceder a ellos a partir de subíndices.
{
«nombre»:»juan»,
«edad»:30,
«coches»: [
{ «nombre»:»Ford», «modelo»:[ «Fiesta», «Focus», «Mustang» ] },
{ «nombre»:»BMW», «modelo»:[ «320», «X3», «X5» ] },
{ «nombre»:»Fiat», «modelo»:[ «500», «Panda» ] }
]}
Tipos de datos
Los tipos de datos soportados por JSON son:
- string: cadenas de texto.
- number: datos numéricos.
- object: objetos JSON.
- arrays: arrays, vectores, etc.
- boolean: datos booleanos (true, false).
- null: valores nulos.
JSON frente a XML
Tanto JSON como XML se usan para intercambiar información entre ordenadores o programas, además de almacenar datos, como configuraciones de un servidor o aplicación, etc.
Inicialmente podemos pensar que JSON, al ser más breve a la hora de definirlo, es mejor que XML. Pero los dos están profundamente implantados en todos los lenguajes y sistemas informáticos.
Veamos un ejemplo con la misma información en los dos sistemas:
Ejemplo JSON:
|
1 2 3 4 5 |
{"employees":[ { "firstName":"John", "lastName":"Doe" }, { "firstName":"Anna", "lastName":"Smith" }, { "firstName":"Peter", "lastName":"Jones" } ]} |
Ejemplo XML:
|
1 2 3 4 5 6 7 8 9 10 11 |
<employees> <employee> <firstName>John</firstName> <lastName>Doe</lastName> </employee> <employee> <firstName>Anna</firstName> <lastName>Smith</lastName> </employee> <employee> <firstName>Peter</firstName> <lastName>Jones</lastName> </employee> </employees> |
Lecturas recomendadas:
- Tutorial XML donde se explican los conceptos básicos para saber cómo escribir documentos XML bien formados: https://www.abrirllave.com/xml/
- Página web con tutoriales y ejemplos de: https://www.w3schools.com/xml/default.asp
- Página de W3C con la descripción oficial de “Extensible Markup Language” (XML): https://www.w3.org/XML/
- Documentación sobre el uso y funciones JSON: https://developer.mozilla.org/es/docs/Learn/JavaScript/Objects/JSON