Hasta hace 5 o 6 años cuando se quería transmitir información desde un servidor a una aplicación (ya fuese una aplicación como tal o una web dinámica) se usaba XML, pero parece que esta tendencia ha cambiado totalmente apostando la mayoría de las empresas y servicios por JSON, una alternativa menos restrictiva, ligera, dinámica y probablemente más fácil de leer (para los humanos).
¿Y es la simplicidad la que hace nacer algunas tecnologías basadas en JSON?
Repaso a JSON
Aunque quería analizar la situación actual de JSON, no puedo evitar dedicarle unas pequeñas líneas a esta notación, que tiene el claro fin de intercambiar datos.
Esta notación basada en objetos (que utiliza el sistema nativo de objetos de JavaScript) hace uso de las llaves y los corchetes para agrupar los datos en listas relacionando clave y valor o listas simples, respectivamente.
Para los iniciados en la programación que no conozcan la notación les hará falta un simple ejemplo para entender su funcionamiento.
// Ejemplo para los datos de un smartphone
{
marca: "Sony",
modelo: "Z",
especificaciones: {
ram: 1024,
resolicion: [1920, 1080],
camara: "13Mpx"
},
colores: [
"rojo",
"azul",
"negro"
]
}
¿JSON se ha impuesto como norma?
El gran contrincante de JSON es XML, que se puede definir como un lenguaje muchísimo más estricto (debido al uso de DTDs o definiciones del tipo de documento) y que tiene algunas peculiaridades como la de disponer de XPath para recorrer su estructura. Pero cuenta con la desventaja de ser muy basto, lo que lo hace poco manejable o incómodo de escribir, sin hablar de el volumen que puede tener si queremos intercambiar grandes volúmenes de datos.
En el caso concreto de pasar datos medianamente simples, como serían datos para generar gráficas, XML se convierte en un gran lastre, ya que la forma idónea de pasar estos datos es almacenándolos en diferentes etiquetas (<dato>21</dato><dato>24</dato><dato>28</dato>
), mientras que en JSON podemos almacenarlos todos seguidos como un simple array ([21,24,28]
).
Esta ventaja en cuanto a simplicidad y la gran compatibilidad con multitudes de lenguajes ha logrado que sea prácticamente la norma en el desarrollo web, siendo algo trivial la recepción mediante AJAX de objetos JSON que son interpretados de forma nativa por cualquier navegador (con JSON.parse()
).
Del intercambio al almacenamiento
Aunque JSON nación para llevar la notación nativa usada para declarar objetos en JavaScript a otros lenguajes, también se le ha conseguido dar usos tan alejados de su origen como el de almacenar datos en bases de datos, MongoDB es el ejemplo perfecto.
Este gestor de bases de datos noSQL basado en clave-valor apuesta por esta notación para almacenar datos. MongoDB en lugar de disponer de las típicas tablas, dispone de colecciones, que son ni más ni menos que objetos JSON que podemos definir a nuestro antojo y de forma totalmente independiente a cómo lo hacemos en cualquier otra colección (también hablamos más extensamente de cómo insertar datos en MongoDB)
Resumen
Tras esto se podría decir que JSON ha simplificado mucho la tarea de intercambiar datos y debido a esto ha sido ampliamente aceptado, siendo usado en gran número de APIs de cualquier tipo (por ejemplo la de World of Warcraft, Authy o Twitter).
Y siempre, si queremos mutar de una lenguaje o notación a otro tenemos incluso la posibilidad de traducir nuestros datos JSON a XML y viceversa.
En Genbeta Dev | JSON