Saltar al contenido
Quaestio

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.
Insertar

Inserta esta herramienta en tu web

Copia el código y pégalo donde quieras que aparezca la herramienta, por ejemplo en una entrada de blog o en la página de un colegio. Es gratis, el recuadro no tiene anuncios y la herramienta calcula en el navegador de quien la usa.

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.

Fuentes

Cómo se comprueban las herramientas