Si alguna vez has construido un sitio web, llamado a una API o echado un vistazo a un archivo package.json, ya conoces JSON. Significa JavaScript Object Notation, y es básicamente el idioma universal que usan las aplicaciones para comunicarse entre sí. No te dejes engañar por lo de "JavaScript" — JSON funciona con prácticamente todos los lenguajes de programación.
Vamos a desglosarlo en un lenguaje sencillo, con muchos ejemplos a lo largo del camino.
Una breve lección de historia
JSON fue creado por Douglas Crockford a principios de los 2000. Quería algo más simple que XML para enviar datos entre navegadores y servidores. La idea cuajó rápido — JSON se estandarizó oficialmente como ECMA-404 en 2013 y más tarde como RFC 8259 en 2017.
Hoy, más del 90% de las APIs web usan JSON. No va a desaparecer.
¿Cómo se ve JSON?
Aquí tienes un ejemplo sencillo — un objeto JSON que representa a una persona:
Bastante legible, ¿verdad? Ese es el punto. Veamos las reglas que hacen que esto funcione.
Las reglas de sintaxis (son simples, prometido)
Tipos de datos: JSON te da seis bloques de construcción: strings (siempre entre comillas dobles), números, booleanos (true/false), null, objetos y arrays. Eso es todo — sin fechas, sin funciones, sin tipos especiales.
Objetos: Son tus pares clave-valor, envueltos en llaves {}. Las claves deben ser strings entre comillas dobles. Aquí tienes un ejemplo de un objeto anidado:
Arrays: Listas ordenadas entre corchetes []. Pueden contener cualquier mezcla de tipos:
Un detalle importante: JSON no permite comas al final. Así que {"name": "Sam",} romperá tu parser. Esto confunde a mucha gente que viene de JavaScript, donde las comas al final están perfectamente bien.
Por qué los desarrolladores aman JSON
Hay varias razones por las que JSON ganó la guerra de los formatos de datos:
- Es súper simple. Compara
{"name": "Jo"}conJode XML. Menos escritura, menos ruido. - Todos los lenguajes lo soportan. Python tiene
json.loads(), JavaScript tieneJSON.parse(), Go tieneencoding/json— ya te haces una idea. Consulta la documentación de JSON en MDN para el lado de JavaScript. - Es ligero. Los payloads JSON son típicamente 30-50% más pequeños que el XML equivalente. Eso importa cuando envías millones de respuestas de API al día.
- Se mapea naturalmente al código. Un objeto JSON se ve casi idéntico a un diccionario de Python, un objeto de JavaScript o un hash de Ruby. No se necesita capa de traducción.
Dónde encontrarás JSON en el mundo real
- APIs web: Consulta casi cualquier API REST y obtendrás JSON. Pruébalo tú mismo — abre tu navegador y visita
https://api.github.com/users/octocat. Eso es JSON. - Archivos de configuración:
package.jsonpara Node.js,tsconfig.jsonpara TypeScript,settings.jsonpara VS Code — JSON está en todas partes en las herramientas de desarrollo. - Bases de datos: MongoDB almacena datos en BSON (JSON binario). PostgreSQL tiene tipos de columna JSON nativos. Incluso MySQL añadió soporte para JSON.
- Intercambio de datos: Los microservicios casi siempre se comunican entre sí en JSON sobre HTTP.
JSON vs XML — La versión corta
XML todavía tiene su lugar (más sobre eso en nuestro artículo sobre XML), pero para la mayoría del trabajo de desarrollo web, JSON gana en legibilidad, tamaño de archivo y velocidad de parsing. ¿El único área donde XML brilla? Datos centrados en documentos con contenido mixto, schemas y transformaciones.
Validar tu JSON
Incluso un error diminuto — una coma faltante, unas comillas de más o una coma al final — hará que el parsing de JSON falle por completo. No existe un "parseo parcial" con JSON; o funciona o no funciona. Por eso herramientas como nuestro JSON Formatter y JSON Validator son tan útiles. Pega tu JSON y verás al instante si algo está mal.
Errores comunes en JSON (y cómo solucionarlos)
Después de años trabajando con JSON, estos son los errores que veo cometer a los desarrolladores una y otra vez:
1. Comillas simples en lugar de comillas dobles. Esto es JavaScript válido, pero NO es JSON válido:
2. Comas al final. JavaScript las permite, JSON no:
3. Comentarios. JSON no tiene sintaxis de comentarios. Si necesitas comentarios en archivos de configuración, considera usar JSONC (JSON with Comments, soportado por VS Code) o cambia a YAML.
4. Claves sin comillas. En JavaScript puedes escribir {name: "Sarah"}, pero en JSON cada clave debe ser un string entre comillas: {"name": "Sarah"}.
5. Usar undefined. El undefined de JavaScript no existe en JSON. Usa null en su lugar.
Trabajando con JSON en diferentes lenguajes
Una de las mayores fortalezas de JSON es el soporte universal de lenguajes. Así es como se ve el parsing y la serialización en lenguajes populares:
¿Notas lo similares que son las APIs? parse/loads para leer, stringify/dumps para escribir. La mayoría de los lenguajes siguen este mismo patrón.
Consejos de rendimiento para JSON
Cuando trabajas con payloads JSON grandes, el rendimiento empieza a importar. Aquí van algunos consejos prácticos:
- Minifica para producción. Eliminar los espacios en blanco del JSON puede reducir el tamaño del archivo en un 10-30%. Nuestro JSON Minifier lo hace en un clic.
- Usa parsers de streaming para archivos grandes. Si tu archivo JSON pesa cientos de megabytes, no lo cargues todo en memoria. Bibliotecas como
JSONStream(Node.js) oijson(Python) parsean de forma incremental. - Evita estructuras profundamente anidadas. Cada nivel de anidamiento añade sobrecarga al parsing. Si te encuentras anidando más de 4-5 niveles, considera aplanar tu modelo de datos.
- Considera alternativas binarias para casos extremos. Para sistemas de muy alto rendimiento, formatos como MessagePack, BSON o Protocol Buffers pueden ofrecer payloads 2-5x más pequeños y un parsing más rápido. Pero pierdes la legibilidad humana, así que es un compromiso.
JSON en el diseño de APIs del mundo real
Veamos cómo las APIs reales estructuran sus respuestas JSON. Aquí hay un patrón común para respuestas de API paginadas:
Y aquí hay un patrón común de respuesta de error:
Estos patrones son tan comunes que los verás en casi toda API REST bien diseñada. Seguir convenciones como estas hace que tu API sea más fácil de entender para otros desarrolladores.
Referencia rápida de JSON
Aquí tienes una hoja de referencia con todo lo que puedes poner en un documento JSON:
| Tipo | Ejemplo | Notas |
| String | "hello" | Debe usar comillas dobles |
| Number | 42, 3.14, -1, 2.5e10 | Sin ceros iniciales, sin hex |
| Boolean | true, false | Solo minúsculas |
| Null | null | Solo minúsculas |
| Object | {"key": "value"} | Las claves deben ser strings entre comillas |
| Array | [1, 2, 3] | Puede mezclar tipos |
Pruébalo tú mismo
Listo para poner este conocimiento en práctica? Aquí están las herramientas que querrás tener en favoritos:
- JSON Formatter — Pega JSON desordenado y obtenlo bellamente formateado con la indentación correcta.
- JSON Validator — Comprueba rápidamente si tu JSON es sintácticamente válido y obtén mensajes de error claros cuando no lo sea.
- JSON Minifier — Elimina los espacios en blanco de tu JSON para payloads de producción.
JSON puede parecer simple en la superficie, pero dominar sus peculiaridades y mejores prácticas te ahorrará incontables horas de depuración. ¡Ahora ve y construye algo genial!