Qué es JSON y cómo leer y validar sus datos
Autor: Redacción Domeny.ForSale Publicado
En resumen: JSON es un formato de texto para almacenar e intercambiar datos, utilizado, entre otros ámbitos, en aplicaciones, archivos de configuración y comunicaciones con servidores. Organiza la información mediante nombres, valores y listas, de modo que puedan leerla tanto las personas como los programas. No es un lenguaje de programación: describe datos, pero no contiene instrucciones para ejecutarlos.
¿Para qué sirve JSON?
El nombre JSON procede de JavaScript Object Notation. Aunque el formato tiene su origen en la representación de objetos en JavaScript, es independiente de ese lenguaje. Es compatible, entre otros, con Python, Java, PHP y C#.
JSON se utiliza con frecuencia en una API, es decir, una interfaz que permite la comunicación entre programas. Cuando la aplicación de una tienda solicita al servidor el nombre, el precio y la disponibilidad de un producto, puede recibir la respuesta en este formato. La aplicación lee los valores y los utiliza para mostrar la ficha del producto.
Este mismo formato sirve para guardar ajustes de programas, exportar datos o transmitir eventos entre servicios. Los archivos suelen tener la extensión .json, pero los datos en JSON también pueden transmitirse sin crear un archivo aparte.
¿Qué aspecto tiene JSON y cómo se lee?
La base de muchos documentos JSON es un objeto, es decir, un conjunto de pares «nombre–valor». El nombre también se denomina clave. El siguiente ejemplo describe un producto de una tienda:
{
"nombre": "Taza de cerámica",
"precio": 39.90,
"moneda": "PLN",
"disponible": true,
"colores": ["blanco", "verde"],
"fabricante": {
"nombre": "Taller de Ejemplo"
},
"codigo_promocional": null
}
Las llaves {} delimitan un objeto. Los dos puntos separan la clave del valor, y las comas separan los distintos pares. En este ejemplo, la clave nombre tiene el valor de texto Taza de cerámica, mientras que precio tiene un valor numérico.
Los corchetes [] delimitan un array, es decir, una lista ordenada de valores. La lista colores contiene dos textos. Por su parte, fabricante es un objeto dentro de otro objeto: este anidamiento permite agrupar información relacionada.
JSON admite seis tipos de valores:
- texto, escrito entre comillas dobles, por ejemplo,
"PLN"; - número, por ejemplo,
39.90o12; - valor booleano:
trueofalse; null, que indica explícitamente la ausencia de un valor;- objeto, delimitado por
{}; - array, delimitado por
[].
Un documento JSON no tiene por qué ser un objeto. También puede ser un array, un texto, un número u otro valor admitido, aunque una API concreta puede exigir una estructura determinada.
Reglas de escritura y errores más frecuentes
JSON tiene una sintaxis estricta. Las claves de los objetos y los valores de texto deben escribirse entre comillas dobles: las comillas simples no pueden sustituirlas. Los números decimales se escriben con punto, no con coma, independientemente de las convenciones polacas para escribir números.
No se puede añadir una coma después del último elemento de un objeto o un array. El formato JSON estándar tampoco admite comentarios. Por eso, el siguiente ejemplo es incorrecto:
{'nombre': 'Taza', 'precio': 39.90,}
La versión correcta es esta:
{"nombre": "Taza", "precio": 39.90}
Los espacios, la sangría y los saltos de línea fuera de los valores de texto facilitan la lectura, pero no cambian el significado de los datos. En cambio, una comilla doble dentro de un texto debe ir precedida de una barra invertida, por ejemplo, "Taza \"Poranek\"". La propia barra invertida se escribe como \\.
Una sintaxis correcta no garantiza que los datos sean correctos. El valor "39.90" es un texto, mientras que 39.90 es un número. Ambos están permitidos en JSON, pero un programa que espere un número puede rechazar el texto. Del mismo modo, null, un texto vacío "" y la ausencia de una clave son situaciones distintas, cuyo significado depende de la aplicación.
Evita también repetir el mismo nombre de clave dentro de un objeto. Los programas pueden interpretar esos datos de formas diferentes; por ejemplo, pueden conservar únicamente el último valor.
¿Cómo abrir y comprobar un archivo JSON?
Puedes abrir un archivo JSON con un editor de texto corriente. Resultará más cómodo usar un editor de código que resalte la sintaxis, ajuste la sangría y señale los errores. Para leerlo, no necesitas poner en marcha un servidor ni instalar un entorno de desarrollo.
Si el archivo no funciona en la aplicación, compruébalo en este orden:
- Haz una copia del archivo antes de editarlo.
- Comprueba la sintaxis con una herramienta de validación de JSON: revisa las comillas, las comas y el cierre de llaves y corchetes.
- Compara los nombres de los campos y los tipos de valores con la documentación de la aplicación.
- Comprueba los campos obligatorios y los valores admitidos, como el código de moneda o el formato de fecha.
JSON no tiene un tipo específico para fechas, por lo que estas suelen escribirse como texto siguiendo una convención acordada. Los requisitos de estructura pueden describirse mediante JSON Schema, un conjunto de reglas que define, entre otras cosas, los campos obligatorios y sus tipos.
No pegues archivos que contengan contraseñas, claves de API o datos personales en validadores en línea de confianza desconocida. Comprueba esos datos localmente con una herramienta fiable.
¿Cuándo elegir JSON y cuándo otro formato?
JSON resulta útil cuando los datos tienen una estructura anidada: un pedido contiene un cliente, una dirección y una lista de productos. Para una tabla sencilla destinada a una hoja de cálculo, puede resultar más cómodo CSV, un formato que organiza los datos en filas y columnas.
Al integrar una aplicación con un servicio ajeno, no puedes elegir libremente el formato: lo determina la documentación del servicio. Empieza con un mensaje de ejemplo que cumpla los requisitos del servicio, cambia algunos valores y comprueba tanto la sintaxis como la conformidad de los campos. Así podrás distinguir un error de sintaxis de JSON de un error en los datos que espera el programa.
Consulta también: ¿Qué es CDN?
