Saltar al contenido

Formateador y Validador JSON

Formatea, valida y minifica JSON al instante en tu navegador. Para inspeccionar respuestas API y configurar archivos.

100% Gratis Sin registro Solo navegador 5 idiomas Modo oscuro
Si algo no funciona o se muestra mal, escríbenos vía Formulario de contacto — usamos los comentarios para mejorar.

Otras herramientas

Artículos relacionados

📖 Dónde se suele tropezar

Da formato, valida y minifica JSON en el navegador. Parece un simple reformateo, pero el documento se analiza y se vuelve a escribir, de modo que los valores pueden cambiar: la especificación no determina del todo cómo se representan los números ni qué ocurre con las claves duplicadas, y esas partes quedan en manos de la implementación. De hecho, no hay garantía de que el significado sobreviva al viaje de ida y vuelta.

Caso Qué ocurre Qué hacer
Un entero grande cambia sólo con reformatear JSON.parse de JavaScript lee todos los números como coma flotante de doble precisión, así que los enteros por encima de dos elevado a cincuenta y tres no se pueden representar con exactitud y se redondean a un valor cercano. Reformatea 9007199254740993 y obtienes 9007199254740992, sin error ni aviso. Los casos peligrosos en la práctica son identificadores grandes como los de Twitter o Discord, los identificadores Snowflake y las claves primarias BIGINT: los datos que reformateaste y volviste a pegar apuntan ahora a otro registro. Lo peor es que se rompió durante lo que creías un simple formateo, de modo que nada te invita a sospechar. Guarda los identificadores grandes como cadenas: escribe "id": "9007199254740993" y el analizador no lo convertirá en número, con lo que el valor se conserva. La API de Twitter afrontó esto pronto devolviendo un campo id_str aparte, y guardar como cadena los números con los que nunca haces aritmética es ya una decisión de diseño asentada en este terreno. Al trabajar con datos existentes, comprueba antes si lo que vas a formatear contiene enteros grandes; la prueba es fácil: desconfía de cualquier valor de más de dieciséis dígitos, ya que dos elevado a cincuenta y tres es 9.007.199.254.740.992, que tiene dieciséis. Y acostúmbrate a comparar con diff el antes y el después: un cambio de valor no intencionado no aparece en ningún otro sitio.
Las claves duplicadas se colapsan en silencio Un JSON en el que la misma clave aparece dos veces, como {"a":1,"a":2}, es comportamiento indefinido según la especificación: la RFC 8259 dice que las claves deberían ser únicas pero no dice qué hacer cuando no lo son. Prácticamente toda implementación deja ganar a la última, así que formatear produce {"a":2} y el primer valor desaparece sin dejar rastro. En un archivo de configuración esto importa: la causa de un ajuste que no surte efecto suele ser que la misma clave aparece antes en el archivo, y formatear destruye también esa evidencia. Para el JSON de configuración, usa un analizador que detecte claves duplicadas: jsonlint y la mayoría de extensiones de JSON de los editores avisan. Un formateador no sirve para detectarlas, porque resuelve el duplicado; entiende que ambos tienen propósitos distintos. Y cuando encuentres una duplicada, no preguntes cuál es la correcta sino por qué se escribieron dos: normalmente alguien pegó un ajuste sin reparar en la entrada existente, y borrar sólo una de las dos hace que vuelva a ocurrir. Cuando un archivo de configuración crece, mantener las claves en orden alfabético vuelve visibles los duplicados.
El JSON con comentarios no se analiza El JSON estándar no tiene comentarios. No es un descuido: Douglas Crockford los quitó de la especificación a propósito, porque los comentarios empezaban a usarse como directivas para los analizadores, lo que habría roto la interoperabilidad. En la práctica, sin embargo, abundan los archivos de configuración que sí los admiten: tsconfig.json, .vscode/settings.json, .eslintrc.json. Son un dialecto aparte, JSONC (JSON con comentarios), y siempre fallan en un analizador de JSON estándar. Lo que creías JSON no era JSON: esa es la forma real de este error. Para trabajar con JSONC, usa un analizador hecho para ello: jsonc-parser en Node, que es lo que usan las herramientas que leen la configuración de VS Code. Para convertir JSON con comentarios en JSON estándar, quita antes los comentarios, pero la información que llevaban se pierde en ese instante, así que no vuelvas a escribir el resultado sobre el archivo original. En términos más amplios: si un archivo de configuración necesita comentarios, elegir YAML o TOML en lugar de JSON es la respuesta más honesta. Un formato que no puede registrar por qué un valor es el que es carece de algo importante como archivo de configuración: para quien lo lea dentro de seis meses, esa línea de comentario vale con frecuencia más que el propio ajuste.

Donde más rinde el formateo es en hacer legibles los diffs. Si versionas una respuesta de API como datos fijos de prueba, dale formato antes de confirmar: con JSON minificado en una línea, un cambio de un carácter convierte el archivo entero en un diff y la revisión se vuelve imposible. El orden de las claves requiere cuidado: algunos formateadores y algunos lenguajes reordenan las claves alfabéticamente, y entonces el primer commit es un diff de todas las líneas. Decidid en equipo no sólo si formatear sino si ordenar las claves, y aplicadlo mecánicamente en CI: cuando la configuración varía por persona, los diffs sin sentido sepultan la revisión. Una nota de seguridad para cerrar: antes de pegar una respuesta de API en cualquier formateador, comprueba que no venga en el cuerpo una cabecera Authorization o un token. Esta página se ejecuta por completo en tu navegador, pero una vez que se adquiere la costumbre de hacer esto en cualquier herramienta en línea que tengas a mano, tarde o temprano un token de producción acaba en el servidor de otra persona.

📖 Cómo usar

  1. 1
    Pega JSON
    Copia JSON de una respuesta API y pégalo en el campo.
  2. 2
    Elige formato o minificar
    Elige la sangría y pulsa Formatear o Minificar.
  3. 3
    Valida y arregla
    Los errores de sintaxis muestran el número de línea.

❓ Preguntas frecuentes

¿Maneja JSON con comentarios?
El JSON estándar no admite comentarios, pero hay un modo permisivo.
¿Se envían los datos al servidor?
No. Todo se procesa en el navegador.
¿Maneja JSON grandes?
Hasta decenas de MB funciona bien.
¿Puedo ordenar las claves?
Activa "Ordenar claves" en opciones.
🐛 ¿Encontró un problema con esta herramienta?

Gratis, sin registro. Incluso solo los pasos para reproducir ayudan. Los informes van directamente al operador y se usan para corregir.

* Se envía automáticamente la info del navegador (UA / pantalla / idioma / URL) para reproducir