Qué es JSON
JSON son las iniciales de JavaScript Object Notation y como su propio nombre indica se trata de un tipo de notación para poder guardar datos. Aunque en su nombre incluya el lenguaje de programación de Javascript, la verdad es que no es exclusivo de este y se usa en muchos otros lenguajes de programación ya sean para scripting, backend, frontend, desarrollo de APPs etc.
Hoy hablaremos de
En este artículo aprenderemos las bases de JSON, cuales son sus ventajas, qué aplicaciones tiene en el mundo de la tecnología y más concretamente de la programación y acabaremos analizando algunas de sus desventajas y alternativas que existen.
Aplicaciones del formato JSON en programación
Los desarrolladores y programadores usan el formato JSON principalmente para 2 tareas: la comunicación entre diferentes sistemas y el almacenamiento de información a través de bases de datos.
¿Qué es un programador senior?
¿Quieres saber qué es un programador senior? En este post te contamos todo lo que debes saber sobre estos expertos del desarrollo de software.
Ver artículoDesde que se desarrollaron los sistemas informáticos la transmisión de datos entre equipos y diferentes lenguajes de programación ha sido un reto. Esto requería de un tipo de datos estandarizado para cualquier sistema informático.
Así es como nació la notación XML, globalmente usada antes de que surgiera el formato JSON. Entonces, ¿Qué ventajas tiene JSON sobre XML?
La ventaja principal es el tiempo de procesamiento. XML es un marcado de etiquetas (muy parecido a HTML) que necesita de la creación de un árbol de etiquetas para parsear y entender la información.
Este tiempo de procesamiento no es necesario en el caso de JSON por lo que es mucho más efectivo en dispositivos que tienen mucho menos recursos computacionales.
Actualmente existen varios casos de aplicación del formato JSON en cuanto a la comunicación entre diferentes lenguajes de programación. Un ejemplo muy claro son las webs.
Otros posts que te gustarán
Las páginas webs constan de dos partes bien diferenciadas. La parte del cliente (también conocida como Frontend) que es todo lo que nosotros podemos ver en nuestro navegador cuando entramos en algún sitio web.
La segunda parte es el servidor (también conocido como Backend) quien opera toda la lógica del código y quién se comunica con la base de datos.
Cuando nosotros entramos en una página web, nuestro navegador se comunica con el servidor para pedir la página que deseamos ver. Esta comunicación se hace a través del formato JSON ya que dos lenguajes de programación muy diferentes (frontend y backend) pueden hablar utilizando un formato de comunicación y transferencia de datos estándar, en este caso JSON.
La segunda aplicación de este tipo de notación es la persistencia de información en diferentes tipos de bases de datos.
Existen bases de datos del tipo no relacional (NoSQL) que usan el formato JSON para almacenar datos. Un ejemplo es la popular MongoDB. Esta base de datos usa las denominadas colecciones, que no dejan de ser un formato JSON, donde se guarda la información a través de pares de clave-valor.
Desde hace unos años, las bases de datos SQL también permiten guardar información en notación JSON. Algunos ejemplos son MySQL o PostgreSQL.
Este tipo de formato permite a las bases de datos no relacionales ser más rápidas que las relacionales ya que no tienen un esquema tan definido y el procesamiento puede ser mucho más rápido.
Reglas sintácticas en formato JSON
Para que se cumpla con la estandarización es importante cumplir una serie de reglas de sintaxis para asegurar que la notación JSON es la correcta.
Cada uno de los objetos se representan con dos llaves, una para el inicio y el otro para la finalización. Un objeto puede contener distinta información. Pongamos un ejemplo.
Imagina que quieres guardar la información de un perro. Dentro del objeto podríamos poner el peso del animal, la edad, el color del pelo, la raza entre otra información. El objeto JSON tendría un aspecto como este:
{“id” : 1, “raza” : “Beagle”, “edad”: 3, “pelo” : “marrón”, “peso” : 12, “macho” : verdadero}
El id representa un número que identifica inequívocamente el perro. Además, vemos diferente tipo de variables. Algunos son números, otros textos e incluso tenemos la clave macho que recibe el valor de verdadero (True), un tipo de dato conocido como Boleano (Boolean).
Todos estos tipos de datos son reconocidos por la gran mayoría de lenguajes de programación por lo que permite una eficaz comunicación entre distintos sistemas.
Desventajas de la notación JSON
Hasta ahora hemos visto las características de JSON y cómo gracias a sus capacidades ha reemplazado en gran parte el lenguaje de etiquetas de XML para la comunicación entre sistemas informáticos.
Para acabar veremos un par de ejemplos de desventajas que puede acarrear este tipo de formato de datos.
No tiene un esquema definido
Cuando trabajamos, por ejemplo, con bases de datos del tipo relacional, los datos se almacenan en tablas con un esquema predefinido. Es decir, cada columna de la tabla tiene un tipo de valor que puede aceptar (texto, números, boleanos…) y si se añade un valor que no pertenece al tipo predefinido entonces saltará un error.
Lo mismo pasa con la longitud de la información introducida. También se pueden especificar otras restricciones como que el valor no puede ser nulo o que debe ser único.
Cuando trabajamos con JSON este esquema no existe por lo que podremos poner cualquier tipo de información. Muchas veces esto no es un problema ya que no necesitamos tener un esquema definido previamente pero en algunas situaciones puede ser una desventaja.
Por lo tanto, algunas veces su gran flexibilidad puede ser una desventaja y otras una ventaja. Todo dependerá de los requerimientos del proyecto con el que estemos trabajando.
No permite la utilización de comentarios
Otro problema de JSON es que no permite la inserción de comentarios. En programación es esencial comentar siempre los objetos que estamos utilizando. De esta forma, otros usuarios podrán entender perfectamente la información que estamos enviando o el código que estamos desarrollando.