Conociendo a JSON
- Angel Gutierrez
- 24 mar 2016
- 3 Min. de lectura
Para iniciar nuestra introducción a JSON primero debemos saber de qué se trata, JSON es un archivo en formato TEXTO que permite enviar y recibir información. Durante años solo había oído hablar del XML como herramienta para transmitir comunicación (también en formato texto) y pensaba que era la única forma de hacerlo. Sin embargo, apareció en mi pequeño mundo el formato JSON que está superando en uso al XML, porque? y es lo que tratare de explicar en este blog.

Definición Teórica:
JSON (JavaScript Object Notation) en un formato de datos muy ligero basado en subconjunto de la sintaxis de Javascript, se basa en la construcción de una lista ordenada de valores, lista de objetos con una colección de pares nombre/valor. En resumen, lo que se pueden enviar en XML en 100 líneas de código, con JSON se puede enviar la misma información con menos líneas de código.
Características:
Simplicidad: Estructura ordenada en formato texto
Apertura: Leíble por todos los sistema de mensajería
Legible: El ser humano puede decodificar el mensaje por sí mismo, el XML también puede ser leído pero por su extensión es un poco más complicado.
Sin Extensibilidad: Como JSON solo almacena datos clásicos no requiere de características especiales para manipular otros tipos de datos como imágenes, gráficos, etc.
Compartir datos tradicionales: JSON es la mejor herramienta para compartir datos. Esto es porque los datos están almacenados en vectores y registros mientras que XML almacena los datos en árboles. Ambos tienen sus ventajas, pero las transferencias de datos son mucho más fáciles cuando los datos se almacenan en una estructura que está familiarizada a los lenguajes orientados a objetos.
Estructura
En JSON, se presenta de la siguiente forma (la más basica):
Un objeto es un conjunto desordenado de pares nombre/valor. Un objeto comienza con { (llave de apertura) y termine con } (llave de cierre). Cada nombre es seguido por : (dos puntos) y los pares nombre/valor están separados por , (coma).

Que valores soporta o se pueden enviar:
Los tipos de valores que podemos encontrar en JSON son los siguientes:
Numérico (entero o float)
String (entre comillas simples)
Booleano (true o false)
Array (entre corchetes[])
Objeto (entre llaves {})
Null
Los Objetos en JSON
Los objetos JSON son identificados entre llaves, un objeto puede ser en nuestro caso un alumno:
{"Alumno":"Angel","Nota":19, "Codigo":"u201409"}
Los Arreglos en JSON
En un JSON puedes incluir arrays, para ellos el contenido del array debe ir entre corchetes []:
{"DSD PC2": [
{"Alumno":"Angel","Nota":19, "Codigo":"u201409"},
{"Alumno":"Luis","Nota":17, "Codigo":"u201476"},
{"Alumno":"Yuri","Nota":20, "Codigo":"u201411"}
] }
Veamos un ejemplo
Digamos que en la clase de DSD hay tres alumnos con sus códigos y sus notas en la PC1 y PC2, como se enviaría esta información en XML?, de esta forma:
<UPC>
<DSD PC1>
<Alumno>Angel</Alumno>
<Nota>18</Nota>
<Codigo>u201423</Codigo>
<Alumno>Luis</Alumno>
<Nota>20<Nota>
<Codigo>u201421</Codigo>
<Alumno>Yuri</Alumno>
<Nota>19<Nota>
<Codigo>u201487</Codigo>
<DSD PC2>
<Alumno>Angel</Alumno>
<Nota>19</Nota>
<Codigo>u201409</Codigo>
<Alumno>Luis</Alumno>
<Nota>17<Nota>
<Codigo>u201476</Codigo>
<Alumno>Yuri</Alumno>
<Nota>20<Nota>
<Codigo>u201411</Codigo>
</UPC>
Ahora, la misma información se enviaría en JSON de esta forma:
{"UPC":
[
{"DSD PC1": [
{"Alumno":"Angel","Nota":18, "Codigo":"u201423"},
{"Alumno":"Luis","Nota":20, "Codigo":"u201421"},
{"Alumno":"Yuri","Nota":19, "Codigo":"u201487"}
]
},
{"DSD PC2": [
{"Alumno":"Angel","Nota":19, "Codigo":"u201409"},
{"Alumno":"Luis","Nota":17, "Codigo":"u201476"},
{"Alumno":"Yuri","Nota":20, "Codigo":"u201411"}
]
}
]
}
Como podemos ver, hemos creado el objeto UPC y, dentro de ese objeto hemos almacenado un array de dos elementos. El primer elemento del array contiene un objeto llamado PC1 y el segundo elemento del array contiene otro objeto llamado PC2. Estos objetos a su vez contienen un array cuyo contenido es el nombre del alumno, su nota y el código del alumno.
Ahora si queremos saber cuál es la nota del alumno Angel en la PC2, la ruta seria la siguiente:
Path: json[‘UPC’][1][‘PC2’][0][‘Nota’]
Existen herramientas online que ayudan a visualizar mejor un JSON como (http://jsonviewer.stack.hu/ ) el cual al copiar el código del ejemplo nos muestra la siguiente pantalla:

Para terminar les diré que solo hemos visto la punta del iceberg, los temas de XML y JSON son extensos y de mayor aplicación día a día, así que tienen toda la RED para otras consultas.
Un saludo y hasta luego.
Bibliografía:
http://www.adictosaltrabajo.com/tutoriales/prototypejs-ajax-json/
https://gonzasilve.wordpress.com/2012/12/15/introduccion-a-json-parte-i/
http://www.json.org/json-es.html
https://blog.udemy.com/json-vs-xml-como-json-es-superior-a-xml/
https://geekytheory.com/json-i-que-es-y-para-que-sirve-json/
Comentários