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 seguidas. Primero el texto pasa por JSON.parse del navegador, pero solo para comprobar que es válido. Después el nuevo formato recorre tu propio texto carácter a carácter: se quitan los espacios en blanco fuera de las cadenas y se añaden saltos de línea y sangrías de dos o cuatro espacios tras las llaves, los corchetes y las comas. Los objetos y las matrices vacíos se escriben juntos. Las cadenas se copian sin tocarlas, secuencias de escape incluidas. Minificar es la misma pasada sin saltos de línea ni sangrías.
Los números se quedan como están
Leer un JSON en JavaScript y volver a escribirlo puede cambiar los números, porque JavaScript tiene un único tipo numérico con precisión limitada. Probado con el código de la herramienta, el entero 12345678901234567890 pasa a ser 12345678901234567000, el número 1.0 pasa a 1, y 1e400 pasa a null. En la herramienta los tres se quedan exactamente como se escribieron. El RFC 8259 solo considera seguros entre sistemas los enteros 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 que ese.
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 haga un receptor con los repetidos es impredecible; muchos analizadores conservan solo el último valor. La herramienta conserva los dos, así que la repetición se ve en el resultado. Un viaje de ida y vuelta por JavaScript habría descartado el primer valor sin avisar. El I-JSON prohíbe directamente los nombres repetidos.
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 que los caracteres de control U+0000–U+001F vayan escapados, como \t para el tabulador. Ocurre con facilidad al pegar texto de una hoja de cálculo. También se rechazan NaN e Infinity, que existen en JavaScript pero no en JSON, y una marca de orden de bytes al principio, aunque el RFC 8259 permite que los analizadores la ignoren.