Cómo formatear y validar JSON
Haz legible un JSON ilegible, encuentra la línea exacta de un error de sintaxis y corrige los fallos más comunes.
4 min de lectura
El JSON está en todas partes: respuestas de API, archivos de configuración, exportaciones de aplicaciones, líneas de log. Las máquinas suelen escribirlo en una sola línea larga y sin espacios, algo eficiente pero imposible de leer. Además, el JSON es estricto: una coma de menos o de más invalida todo el contenido. Formatear resuelve el primer problema y validar, el segundo.
Qué significa formatear y validar
- Formatear (embellecer) añade saltos de línea y sangría para que cada clave quede en su propia línea y el anidamiento se vea de un vistazo.
- Minificar hace lo contrario: quita todos los espacios innecesarios para que los datos ocupen lo mínimo, por ejemplo antes de pegarlos en un valor de configuración.
- Validar comprueba que el texto cumple las reglas de JSON. Un formateador tiene que analizar los datos primero, así que valida de paso.
Cómo formatear JSON con QodeCat
El Formateador y validador JSON funciona por completo en tu navegador, así que puedes pegar respuestas de API con tokens o datos de clientes sin enviarlas a ningún sitio.
- Pega tu JSON en Entrada sin formato o pulsa Subir para abrir un archivo .json. Los archivos subidos se formatean al momento.
- Pulsa Formatear para sangrar los datos con dos espacios o Minificar para dejarlos en una línea. El resultado sustituye a tu entrada y aparece a la derecha con resaltado de sintaxis y la marca Válido.
- La barra de herramientas muestra el tamaño de los datos y cuántas claves hay en el nivel superior.
- Usa los botones de copiar y descargar para llevarte el resultado. La descarga se guarda como formatted_data.json.
Si el JSON está mal, aparece un aviso de JSON no válido con el mensaje de error de tu navegador, y tu entrada se queda como estaba para que la corrijas.
Cómo leer el mensaje de error
El mensaje lo genera el navegador y suele estar en inglés. Un mensaje como Expected double-quoted property name in JSON at position 12 (line 3 column 1) indica dónde se detuvo el analizador, no siempre dónde está el fallo. En este caso, el problema real es una coma sobrante al final de la línea 2: el analizador solo lo detecta al llegar a la llave de cierre. Revisa el punto indicado y el carácter justo anterior.
Los errores que más rompen un JSON
- Comas finales: {"a": 1,} o [1, 2,]. JavaScript las admite, JSON no.
- Comillas simples: {'nombre': 'Ada'}. Las claves y los textos deben ir entre comillas dobles.
- Claves sin comillas: {nombre: "Ada"}. Cada clave debe ser un texto entre comillas dobles.
- Comas que faltan entre elementos, a menudo tras copiar líneas de sitios distintos.
- Comentarios (// o /* */). El JSON estándar no tiene comentarios; bórralos.
- Valores que solo existen en JavaScript: undefined, NaN, Infinity o funciones.
- Comillas tipográficas (“ ” o « ») pegadas desde un procesador de textos o un chat en lugar de comillas rectas.
Tres cosas que conviene saber antes de formatear
- Las claves duplicadas se fusionan sin avisar. Si un objeto tiene la misma clave dos veces, tras formatear solo queda el último valor.
- Los enteros muy grandes pierden precisión. Los números por encima de 9.007.199.254.740.991, como algunos ID de 64 bits, se redondean al analizarlos: 12345678901234567890 pasa a ser 12345678901234567000. Guarda esos ID como texto.
- Las claves que parecen números enteros pasan al principio. En {"b": 1, "2": 0}, la clave "2" queda primera tras formatear. Las demás claves mantienen su orden.
Para tareas relacionadas: convierte hojas de cálculo con CSV a JSON, cambia de formato de configuración con YAML ↔ JSON o genera tipos a partir de un ejemplo con JSON a TypeScript.
Preguntas frecuentes
¿Formatear cambia mis datos?
Normalmente solo cambian los espacios. Las claves y los valores se mantienen, con las tres excepciones anteriores: claves duplicadas, enteros demasiado grandes para JavaScript y claves numéricas que pasan al principio.
¿Puedo formatear un JSON con comentarios?
No directamente. Los comentarios no son JSON válido y el validador mostrará un error. Bórralos primero y después formatea.