Qué es un formateador de JSON
JSON (JavaScript Object Notation) es el formato estándar para intercambiar datos entre aplicaciones: lo devuelven las APIs, lo usan los archivos de configuración y lo exportan bases de datos y hojas de cálculo. El problema es que los servidores casi siempre lo envían minificado: todo en una sola línea, sin espacios ni saltos, imposible de leer a simple vista.
Esta herramienta hace tres cosas, todas en tu navegador: formatea el JSON con la indentación que elijas (2 o 4 espacios), lo minifica para que ocupe el mínimo posible y lo valida, señalando la línea y la columna exacta del primer error de sintaxis.
Cómo usar la herramienta
- Pega tu JSON en el cuadro de entrada.
- Elige la indentación: 2 espacios (la más común) o 4.
- Pulsa Formatear para ordenarlo, Minificar para compactarlo o Validar si solo quieres comprobarlo.
- Si hay un error, verás el mensaje original del navegador junto con la línea y la columna donde ocurre.
- Con Copiar resultado lo llevas al portapapeles y con Limpiar empiezas de cero.
Cómo se localiza un error: línea y columna
Cuando el JSON es inválido, el motor de JavaScript lanza un SyntaxError que suele incluir la posición del carácter conflictivo, por ejemplo position 30. La herramienta cuenta los saltos de línea desde el inicio del texto hasta esa posición: el número de saltos más uno da la línea, y la distancia desde el último salto da la columna.
Ejemplo resuelto
Supongamos un JSON de tres líneas con una coma final prohibida:
- Línea 1:
{"nombre": "Ana",— 17 caracteres, con el salto de línea en la posición 17 - Línea 2:
"edad": 28,— 11 caracteres, con el salto de línea en la posición 29 - Línea 3:
}
Al validar, el parser se detiene en la llave de cierre, en la posición 30: después de la coma esperaba otra propiedad y encontró el cierre del objeto. Antes de la posición 30 hay dos saltos de línea (en las posiciones 17 y 29), así que el error está en la línea 3; la columna es 30 menos 29, es decir, columna 1. Basta quitar la coma después de 28 para que el indicador pase de rojo a verde.
Los errores más comunes
| Error | Ejemplo inválido | Corrección |
|---|---|---|
| Comillas simples | {'nombre': 'Ana'} | {"nombre": "Ana"} |
| Coma final | [10, 20, 30,] | [10, 20, 30] |
| Claves sin comillas | {edad: 28} | {"edad": 28} |
| Comentarios | // esto rompe el JSON | eliminarlos: JSON no los admite |
| Valores no válidos | {"total": undefined} | usar null: {"total": null} |
Tus datos no salen del navegador
Todo el procesamiento ocurre con JavaScript en tu propio dispositivo: no se envía nada a ningún servidor ni se guarda nada. Es un detalle importante cuando el JSON contiene tokens, credenciales, datos de clientes o cualquier información sensible: puedes formatearlo y validarlo sin que salga de tu pantalla.
Preguntas frecuentes
¿Por qué mi JSON es inválido si en JavaScript funciona?
Porque JSON es un subconjunto estricto de la sintaxis de JavaScript. Un objeto literal de JavaScript acepta comillas simples, claves sin comillas, comas finales, comentarios y valores como undefined; JSON no acepta ninguna de esas cosas. Si copiaste un objeto directamente desde tu código, lo más probable es que necesites poner comillas dobles en todas las claves y revisar las comas.
¿Puedo poner comentarios en un JSON?
No: el estándar no los permite y es uno de los errores más frecuentes al validar. Las alternativas habituales son añadir una clave descriptiva como "_comentario" dentro del objeto, documentar en un archivo aparte, o usar formatos que sí los aceptan (JSONC o JSON5) cuando tu herramienta los soporte.
¿Qué indentación conviene: 2 o 4 espacios?
Es cuestión de convención, no de validez: ambas producen JSON correcto. 2 espacios es lo habitual en el ecosistema JavaScript y Node.js, mientras que 4 espacios se ve más en proyectos Python o .NET. Para archivos que viajan por la red conviene minificar, porque la indentación solo agrega peso.
¿Qué son JSON5 y JSONC?
Son extensiones del formato. JSONC (JSON con comentarios) se usa en los archivos de configuración de VS Code; JSON5 además permite comillas simples, comas finales y claves sin comillas. El JSON.parse estándar de los navegadores no acepta ninguno de los dos: este validador aplica el estándar estricto, que es lo que exigen las APIs y la mayoría de programas.