Formatear JSON
Convierte una línea larguísima de JSON en algo que puedas leer, o vuelve a compactarla. Los números grandes conservan todos sus dígitos, algo que la mayoría de los formateadores en línea hacen mal sin avisar. No se guarda nada.
- Nunca se guarda
- Sin filas ni esperas
- Sin registro, sin marca de agua
El JSON formateado aparece aquí.
Cómo funciona
Pega tu JSON
O suelta un archivo .json. Lo que pegues se queda en esta página: no se guarda nada.
Elige la sangría
Dos espacios, cuatro, tabulaciones o minificado en una sola línea. La elección se recuerda para la próxima vez.
Copia o descarga
Copia el resultado o guárdalo como archivo. Si el JSON está roto, obtienes la línea, la columna y el carácter.
Qué sobrevive al ida y vuelta
Formatear es analizar y volver a imprimir, y los números son la única parte que se conserva tal como la escribiste. Eso va más allá del caso de los enteros grandes que cuenta el aviso: cualquier número cuya escritura más corta en JavaScript difiera de la tuya se vuelve a emitir a partir del original, así que 1.10 conserva su cero final, 1e5 se mantiene en notación exponencial y un cero negativo sigue siendo negativo. En el aviso solo se cuentan los enteros no seguros, porque en esos la alternativa es una corrupción silenciosa y no una escritura más ordenada.
Las cadenas no se conservan como texto. Las secuencias de escape se decodifican al leer el documento y se escriben de nuevo al imprimirlo, así que \u0041 vuelve como A y una barra diagonal escapada vuelve sin escapar. El valor es idéntico y los bytes no, lo que solo importa en una situación, pero ahí importa mucho: si algo más adelante compara dos archivos JSON byte a byte, pasar uno de ellos por un formateador no es una operación neutra.
Antes de confiar en un reformateo conviene conocer dos comportamientos a nivel de objeto. Las claves duplicadas se resuelven sin avisar, y gana la última, exactamente como las resuelve el propio parser del navegador: un documento con dos campos "id" se formatea sin quejas y vuelve con uno solo, y nada te indica que existía el otro. Y el orden de las claves es el de tu archivo solo para las claves que no son números enteros: un objeto con "1", "2" y "name" vuelve con las claves numéricas primero, en orden numérico, porque así es como el propio JavaScript ordena las propiedades de un objeto. Las claves normales mantienen el orden en que las escribiste.
Si buscas otra cosa
Si lo que tienes es un tsconfig.json, una configuración de ESLint o un archivo de configuración de VS Code, esta página señalará los comentarios y las comas finales en lugar de formatear respetándolos: es la respuesta correcta para una herramienta de JSON y la herramienta equivocada para tu archivo. Esos archivos son JSONC, y tu editor ya los analiza; en la línea de comandos, json5 y dasel los leen sin fingir que son JSON.
Para cualquier cosa más allá de cambiar la sangría, un formateador no es el tipo de herramienta adecuado. jq hace en una sola expresión lo que un cuadro de texto no puede controlar: jq -S . ordena las claves de cada objeto para poder comparar dos respuestas, jq 'del(.token)' elimina un campo antes de mostrarle un payload a nadie, y jq -c compacta un array de objetos en el JSON Lines que espera un pipeline. Además, lee un archivo y no el portapapeles, lo que marca la diferencia cuando el documento es más grande de lo que puedes seleccionar cómodamente.
Preguntas frecuentes
¿Se guarda mi JSON en algún lugar?
No. No hay llamadas al servidor ni registros, y no se guarda nada. Puedes desconectarte de internet después de que cargue la página y sigue funcionando. Aquí eso importa más de lo que parece: lo que la gente pega en un formateador en línea son respuestas de API, archivos de configuración y mensajes de error, y es habitual que contengan tokens, datos de clientes y nombres de servidores internos.
¿Por qué esta herramienta conserva exactos los números grandes y otros formateadores no?
Porque casi todos los demás los rompen sin avisar. Un número de JavaScript es un float de 64 bits, así que solo puede guardar con exactitud enteros hasta 9,007,199,254,740,991. Cualquier número mayor (el ID de una publicación de Twitter/X, un snowflake de Discord, un número de cuenta bancaria, una clave de base de datos de 64 bits) pierde sus últimos dígitos en cuanto pasa por `JSON.parse`. El número sigue pareciendo creíble, y eso es lo que lo hace peligroso: 7205759403792793600 se convierte sin avisar en 7205759403792793000. Esta página conserva exactamente los dígitos que pegaste y te dice cuántos números tuvo que proteger.
¿Qué hace con un archivo roto?
Te dice dónde está el problema, no solo que hay uno. Obtienes el número de línea, la columna, la propia línea con un signo ^ debajo del carácter problemático y una descripción en lenguaje claro: “una coma final antes de }” en lugar de “Unexpected token”. Las comas finales, las comillas simples, las claves sin comillas y los saltos de línea sin escapar dentro de cadenas son los cuatro errores que causan la mayoría de los JSON rotos, y cada uno se nombra específicamente.
¿Admite JSON Lines / NDJSON?
Sí, y respeta su forma. JSON Lines es un valor JSON completo por línea (el formato que usan los logs y las exportaciones de datos), y darle formato en varias líneas destruiría justo lo que lo hace útil. Se detecta automáticamente, cada línea se formatea por separado y se conserva el diseño de un valor por línea.
¿Puede arreglar JSON con comentarios o comas finales?
Los señalará con precisión, pero no los aceptará sin avisar. Los comentarios y las comas finales no son JSON: son JSON5 o JSONC, que es lo que usan en realidad archivos de configuración como tsconfig.json. Un formateador que los aceptara sin decir nada te daría un archivo que luego tu parser rechaza, lo cual es peor que un error aquí.
¿Hay un límite de tamaño?
La memoria disponible, no un tope que impongamos nosotros. Los documentos de unos pocos megabytes se formatean al instante; los muy grandes están limitados por cuánto se puede mantener en memoria a la vez, no por nada de nuestra parte.
¿Minificar cambia mis datos?
No. Minificar solo elimina los espacios en blanco entre tokens: nunca reordena claves, nunca cambia el formato de los números, nunca quita nada. El resultado se analiza exactamente como el mismo valor, solo que ocupa menos.
Conviene saber: El formato es exacto: el documento se analiza y se vuelve a imprimir, así que todo lo que se pueda analizar vuelve a salir. Solo JSON estricto: los comentarios, las comas finales y las claves sin comillas se rechazan en lugar de repararse sin avisar, porque repararlos significaría adivinar. Los documentos muy grandes se mantienen dos veces en memoria mientras se formatean.
Agrega esta herramienta a tu sitio web
Gratis para cualquier blog, página de clase o artículo de ayuda. Pega un fragmento de código y tus visitantes podrán usarla directamente en tu página.
Más Herramientas para desarrolladores
Validar JSON
Descubre exactamente dónde falla tu JSON
Formatear XML
Aplica sangría al XML para poder leerlo
Decodificar Base64
Convierte Base64 de nuevo en texto o en un archivo
Decodificar JWT
Lee el contenido de un token de forma privada
Validar XML
Descubre exactamente dónde falla tu XML
Codificar Base64
Convierte texto o un archivo a Base64