Por qué importa formatear JSON
En producción, JSON suele viajar minificado: todo en una línea, sin espacios, sin saltos. Esto ahorra bytes pero lo vuelve ilegible para humanos. Cuando estás debuggeando una respuesta de API, leyendo un archivo de configuración largo o auditando un export de base de datos, lo primero que hacés es formatear. Un buen formateador convierte una sopa de caracteres en una estructura jerárquica clara en menos de un segundo.
Reglas estrictas de JSON
- Comillas dobles obligatorias. JSON no acepta comillas simples.
'name'rompe el parser;"name"funciona. - Sin trailing commas.
{"a":1,}es JavaScript válido pero JSON inválido. - Sin comentarios. Ni
//ni/* */. Si necesitás comentarios, usá JSON5 o JSONC (la variante de VS Code). - Claves siempre entre comillas.
{name: "Genfy"}rompe;{"name": "Genfy"}funciona. - Booleanos en minúscula.
trueyfalse, noTrue.
Tipos de datos válidos
JSON soporta seis tipos: string, number, boolean, null, object y array. No tiene fechas (se representan como strings ISO), ni undefined (se omite la clave), ni funciones, ni símbolos. Cuando una librería serializa un objeto JavaScript a JSON, todo lo que no entra en esos seis tipos se pierde silenciosamente.
Indentación: 2 espacios, 4 espacios o tab
No hay un estándar universal. La convención más común en proyectos JavaScript es 2 espacios (npm package.json, Prettier por default). Python tiende a 4. Algunos equipos usan tabs por razones de accesibilidad. Lo que importa es la consistencia dentro de un mismo proyecto: si tu repo usa 2 espacios, no introduzcas archivos con 4.
Errores de sintaxis frecuentes
- Coma sobrante al final de un array u objeto. Suele venir de borrar la última línea sin actualizar la coma anterior.
- Comillas curvas. Cuando copiás de Word o Google Docs, las comillas se transforman a "smart quotes" (" ") que JSON no entiende.
- Caracteres de control en strings. Tabs y saltos de línea literales dentro de strings rompen el parser; hay que escaparlos como
\ty\n. - Anidamiento incorrecto. Llaves o corchetes desbalanceados.
Tips para trabajar con JSON grande
Si tu archivo supera los 10 MB, evitá editores web — pueden colgar el navegador. Usá una herramienta de línea de comandos como jq para filtrar y reformatear. Si solo querés inspeccionar parte de la estructura, considerá jq 'keys' para listar las claves del nivel superior antes de buscar más profundo.
JSON vs alternativas modernas
- JSON5: permite comentarios, trailing commas, claves sin comillas. Útil para configs.
- YAML: más legible pero ambiguo (un valor sin comillas puede interpretarse como string o number).
- TOML: popular en Rust y en algunos configs (Cargo, pyproject.toml).
- Protocol Buffers: binario, mucho más eficiente que JSON para tráfico interno entre servicios.