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 sitio

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 una escuela. 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, 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.

Fuentes

Cómo se verifican las herramientas