Trabajar con texto JSON suele reducirse a tres tareas distintas: hacerlo legible, hacerlo compacto o comprobar que sea correcto. Son tres operaciones independientes, aunque a menudo se combinan en una sola herramienta.
Formateo (pretty-print)
El formateo añade sangrías, saltos de línea y espacios alrededor de la puntuación para que la estructura del JSON sea fácil de leer a simple vista. Es un cambio puramente estético: no afecta a los datos, solo a su representación visual.
Minificación
La minificación elimina todos los espacios, saltos de línea y sangrías innecesarios, dejando solo los caracteres imprescindibles. Esto reduce el tamaño del archivo, algo importante al transmitir datos por red o al almacenar grandes volúmenes: la estructura de los datos en sí no cambia.
Validación
La validación comprueba si el texto es JSON sintácticamente correcto. Errores típicos que detecta: una coma sobrante antes de un corchete de cierre, comillas simples en vez de dobles, claves de objeto sin comillas, comentarios (que el estándar JSON no permite) o corchetes sin cerrar. Que el JSON sea válido es un requisito previo para que el formateo o la minificación funcionen en absoluto.
Cuándo usar cada cosa
- Formateo — al depurar respuestas de una API o al editar manualmente archivos de configuración.
- Minificación — antes de enviar datos por red o incrustarlos en código de producción.
- Validación — al diagnosticar por qué un analizador se niega a leer un archivo JSON.
Por qué "México" se convierte en "México"
Muchos serializadores escapan por defecto todo carácter fuera de ASCII: un campo como "ciudad": "México" puede salir de json.dumps() en Python como "ciudad": "México" si no se pasa ensure_ascii=False, y lo mismo ocurre con acentos y eñes en nombres, direcciones o catálogos de productos en APIs de comercio electrónico latinoamericanas y españolas. El JSON sigue siendo válido antes y después del escape, pero un formateador que solo añade sangrías sin revertir esas secuencias \uXXXX deja el texto ilegible para revisar a simple vista.
JSON5 y JSONC no son lo mismo que JSON
Algunos entornos (como los archivos de configuración de VS Code o TypeScript) aceptan comas sobrantes, comentarios y claves sin comillas — son extensiones de JSON5 o JSONC, no JSON estándar (RFC 8259). Un validador configurado para JSON estricto rechazará correctamente ese archivo, aunque el editor lo «entienda». Si se necesita admitir comentarios, conviene marcar explícitamente el formato como JSONC en lugar de confiar en que cualquier analizador JSON lo acepte.