Qué es JSON y cómo se utiliza

JSON (JavaScript Object Notation) es el formato que mueve buena parte de la web hispanohablante hoy. Cuando abres una app del banco, consultas el estado del envío en Correos o pides la previsión del tiempo en la AEMET, casi siempre hay un pequeño documento JSON viajando entre tu móvil y un servidor.

Esta guía está pensada para que entiendas JSON sin rodeos: qué es, cómo se escribe, qué errores cometen casi todos al principio y cómo validarlo en segundos.

Una definición sin tecnicismos

JSON es un formato de texto para representar datos estructurados. Surgió a partir de la sintaxis de objetos de JavaScript, pero hoy lo entienden todos los lenguajes serios: Python, Java, PHP, Ruby, C#, Go, Rust y por supuesto JavaScript.

La idea es muy simple: pares de "clave": valor, agrupados entre llaves. Por ejemplo, así se vería un producto en una tienda online española:

{ "id": 12345, "nombre": "Camiseta de algodón", "tallasDisponibles": ["S", "M", "L"], "stock": 42, "enRebajas": true }

No hay etiquetas como en XML ni separadores raros. Solo claves, dos puntos y valores. Por eso JSON desplazó casi por completo a XML para intercambiar datos.

Los tipos de datos que admite

JSON solo conoce seis tipos de valor: cadena de texto entre comillas dobles, número (sin distinción entre entero y decimal), booleano (true o false), null para indicar ausencia, array entre corchetes y objeto entre llaves. Nada más.

No existen fechas como tipo nativo. Si necesitas guardar la fecha del pedido, usa una cadena en formato ISO 8601: "2025-03-14T18:30:00Z". Tampoco hay comentarios. Si ves comentarios con // o /* */ en un fichero ".json", en realidad es JSON5 o JSONC, que son variantes y no todas las librerías los aceptan.

Los errores que cometen casi todos al empezar

El más típico es usar comillas simples en lugar de dobles. JSON exige comillas dobles tanto en claves como en valores de texto. Otro clásico es dejar una coma final detrás del último elemento de un array o de un objeto: en JSON estándar eso rompe el parseo.

También conviene recordar que las claves siempre van entre comillas. En JavaScript puedes escribir { nombre: "Lucía" } pero en JSON tiene que ser { "nombre": "Lucía" }. Si te pasas con los decimales, los números muy grandes pierden precisión: para identificadores largos como un IBAN o un DNI conviene usar cadena de texto, no número.

Cómo validar JSON al vuelo

Cuando una API te devuelve un error críptico, la culpa suele ser de una coma fuera de sitio. La forma rápida de localizarla es pegar el JSON en un validador. Nuestro formateador online te indica la línea exacta del fallo y reescribe el documento con sangría legible.

En la línea de comandos, jq es el aliado clásico: jq . pedido.json detecta cualquier problema de sintaxis y te muestra el resultado con colores. En Python tienes json.tool y en Node el método JSON.parse lanza una excepción con la posición del carácter problemático.

JSON y rendimiento en aplicaciones reales

Un JSON grande no es gratis. Si tu API devuelve diez mil productos en una sola respuesta, el navegador tendrá que parsear todo eso antes de poder pintar nada. Conviene paginar (?pagina=1&porPagina=50), comprimir con gzip o brotli, y devolver únicamente los campos que el cliente necesita.

Para datos muy repetitivos, formatos como NDJSON (un JSON por línea) o MessagePack pueden ser más eficientes. Pero para el 95% de los casos, JSON bien estructurado y con gzip activado en el servidor es más que suficiente.

Herramientas relacionadas

Preguntas frecuentes

¿Cuál es la diferencia entre JSON y un objeto de JavaScript?
Un objeto de JavaScript vive en memoria y puede contener funciones, fechas o referencias. JSON es solo texto plano que representa datos: no admite funciones, fechas nativas ni undefined. Cuando envías un objeto por la red, lo conviertes a JSON con JSON.stringify.
¿Es JSON sensible a mayúsculas?
Sí. La clave "Nombre" y la clave "nombre" se consideran distintas. Por convención en la comunidad hispana se usa camelCase ("fechaCreacion") o snake_case ("fecha_creacion"); elige una y mantenla en todo el proyecto.
¿Cómo guardo caracteres especiales como tildes o la ñ?
JSON admite UTF-8 de forma nativa, así que puedes escribir "España" o "niño" sin más. Si ves secuencias como \u00f1, es la representación escapada y significa lo mismo. Asegúrate de que tu servidor declara Content-Type: application/json; charset=utf-8.
¿Puedo usar JSON para configurar mi aplicación?
Sí, pero piensa si necesitas comentarios o variables. Si los necesitas, considera YAML o TOML. Si solo quieres claves y valores, JSON funciona perfectamente y casi cualquier lenguaje lo lee sin librerías externas.
¿Existe un tamaño máximo recomendado?
No hay límite oficial, pero por encima de 1 MB el parseo se nota en móviles modestos. Si tu respuesta supera esa cifra, casi siempre conviene paginar o devolver solo los campos imprescindibles.