Formateador de JSON
Pega JSON y se vuelve a formatear, o se comprime en una sola línea.
Resultado
Pega JSON en el campo de arriba.
Cómo funciona
JSON es un formato de texto para datos estructurados, formado por objetos con campos con nombre, matrices, cadenas, números, true, false y null.
Dar formato solo cambia los espacios en blanco. Los datos son idénticos antes y después, así que puedes volver a formatear un archivo sin riesgo antes de leerlo.
Minificar elimina todos los espacios y saltos de línea innecesarios, lo que suele reducir entre un veinte y un treinta por ciento el tamaño de un JSON con sangría.
Cuando el texto no se puede analizar, el mensaje viene del propio analizador del navegador y suele indicar el carácter inesperado. Las causas más comunes son una coma sobrante antes de una llave de cierre y un tipo de comillas equivocado.
En JSON no se permiten comentarios, y los nombres de los campos deben ir entre comillas dobles rectas. Esa es la diferencia más común con la forma de escribir objetos en JavaScript.
Cómo da formato la herramienta
La herramienta hace dos cosas, una tras otra. Primero el texto pasa por JSON.parse del navegador, pero solo para comprobar que es válido. Después el formato recorre tu propio texto carácter por carácter: quita los espacios en blanco fuera de las cadenas y agrega saltos de línea y sangrías de dos o cuatro espacios después de las llaves, los corchetes y las comas. Los objetos y las matrices vacíos se escriben juntos. Las cadenas se copian sin tocarlas, con sus secuencias de escape. Minificar es la misma pasada sin saltos de línea ni sangrías.
Los números se quedan como están escritos
Leer un JSON en JavaScript y volver a escribirlo puede cambiar los números, porque JavaScript tiene un solo tipo de número con precisión limitada. Probado con el código de la herramienta, el entero 12345678901234567890 se convierte en 12345678901234567000, el número 1.0 en 1, y 1e400 en null. En la herramienta los tres se quedan exactamente como están escritos. El RFC 8259 solo considera seguros entre sistemas los enteros de hasta 2⁵³ − 1, que es 9 007 199 254 740 991, y el I-JSON (RFC 7493) recomienda enviar como cadenas los números exactos mayores.
Nombres repetidos
Un objeto con el mismo nombre dos veces pasa la comprobación. El RFC 8259 solo dice que los nombres deberían ser únicos y que lo que hace un receptor con los repetidos es impredecible; muchos analizadores conservan solo el último valor. La herramienta conserva los dos, así que el nombre repetido se ve en el resultado. Un viaje de ida y vuelta por JavaScript habría borrado el primer valor sin avisar. El I-JSON prohíbe los nombres repetidos sin excepción.
Errores frecuentes
Un tabulador o un salto de línea dentro de una cadena hacen que el texto no sea válido, porque el RFC 8259 exige escapar los caracteres de control U+0000–U+001F, como \t para el tabulador. Pasa con facilidad al pegar texto de una hoja de cálculo. NaN e Infinity, que existen en JavaScript pero no en JSON, también se rechazan, igual que una marca de orden de bytes al principio, aunque el RFC 8259 permite que los analizadores la ignoren.