MEAN: JSON
Hace cosa de un año decidí sacarme la titulación del Grado en Ingeniería Informática convalidando gran parte del mismo con mi Ingeniería Técnica en Informática. Realmente solo tuve que hacer dos asignaturas, y presentar un TFG o Trabajo de Fin de Grado. Aproveché el TFG para sumergirme en el mundo del desarrollo de aplicaciones web de tipo SPA (Single Page Application) en Angular 1.x utilizando el stack MEAN (MongoDB, Express, AngularJS y NodeJS), para lo que desarrollé una aplicación web que ahora se utiliza en mi entorno laboral de forma frecuente.
Puesto que no supe hacerlo de otra manera, toda la memoria de mi TFG se convirtió en un gran tutorial que pretendía recoger todos los conocimientos necesarios para que cualquier iniciado pudiera desarrollar su aplicación web. Pasado un tiempo, y después de haberme encontrado de nuevo con el documento en sí, me ha parecido buena idea compartir todos los contenidos de esa memoria de forma estructurada, por lo que iré creando diferentes artículos con los distintos capítulos del mismo.
Intentaré partir de los conocimientos más básicos necesarios para ir comprendiendo las diferentes tecnologías que utilicé, por lo que considero primordial comenzar hablando del formato de datos utilizado en todos los intercambios de información de la arquitectura MEAN. Este estándar es el llamado JavaScript Object Notation, o comúnmente denominado JSON (ECMA-404).
Tabla de Contenidos
JSON es una alternativa más ligera al XML como formato de intercambio de datos, ya que no necesita de etiquetas que encierren la información, si no que se sirve de una notación simple basada en comillas, llaves y corchetes que hacen que la información no solo sea más liviana, si no más fácilmente entendible.
Estructuras
En JSON existen dos tipos de estructuras básicas:
Objeto
Colección de pares clave/valor encerrados entre llaves. También es denominado diccionario o array asociativo. En la Figura 1 se muestra la definición formal de un objeto JSON.
Un ejemplo de objeto JSON sería el siguiente:
{ "nombre": "Miguel", "edad": 32 }
Array
Colección ordenada de valores encerrados entre llaves. En la Figura 2 podemos ver que la diferencia fundamental con un objeto.
A continuación podemos ver dos ejemplos de arrays en JSON:
[ { "nombre": "Miguel", "edad": 32 }, { "nombre": "Pepe", "edad": 43 } ]
["Miguel","Pepe",23,false,"Petunia"]
Datos
Resulta importante destacar que los valores que se pueden utilizar en una estructura JSON son números y cadenas de texto, los valores booleanos true o false, null como valor nulo, además de los ya mencionados objetos y arrays. En la Figura 3 podemos ver la definición formal de valor en JSON.
La especificación de JSON define además el formato de las cadenas de texto, por lo que habrá que tomar especial atención a la hora de crearlas, ya que no se permiten caracteres especiales como tal, si no que hay que utilizar notación UNICODE. En la Figura 4 podemos ver un ejemplo de cómo se forma una cadena de texto JSON.
Los números en JSON no necesitan introducirse entre comillas, pero si tienen que cumplir ciertas reglas de formato como se puede observar en la Figura 5.
Para finalizar, en el siguiente ejemplo podemos ver un extraño objeto JSON con diferentes elementos:
{ "nombre": "Miguel", "edad": 32, "peso": 80.23, "vivo": true, "pelo": null, "objetos": [ { "id": 3, "desc": "cosa1" }, { "id":4, "desc": "cosa2" } ], "lenguajes": ["python","javascript","java","php"], "mensaje": "En un lugar de \"La Mancha\" de\ncuyo nombre no quiero acordarme" }
2 Respuestas
[…] con el stack MEAN (MongoDB, ExpressJS, AngularJS y NodeJS), y tras haber explicado lo que es JSON, paso a explicar los por menores del sistema gestor de bases de datos MongoDB, no sin antes […]
[…] Este fichero incluye toda la información importante de una aplicación Node.js en formato JSON, como el nombre y descripción de la misma, la versión actual, el tipo de licencia del mismo, y lo […]