Texto

Formateador JSON

Formatea, comprime y valida JSON. Elige el nivel de sangría para mejorar la legibilidad o comprime el JSON en una sola línea. También puedes verificar errores de sintaxis al instante.


Entrada JSON
Resultado formateado JSON válido JSON no válido
{{ result.lines }} líneas / {{ result.bytes.toLocaleString() }} bytes
{{ result.error }}

Tips

  • Las claves JSON deben ir siempre entre comillas dobles. Las comillas simples no son válidas.
  • Las comas finales ({"a":1,}) no son válidas según la especificación JSON.
  • Los números en notación científica son válidos, pero NaN e Infinity no lo son.
  • Las comillas dobles dentro de cadenas deben escaparse como \". Los saltos de línea se representan con \n y las tabulaciones con \t.
  • Comprimir el JSON es útil para reducir el tamaño de los archivos. Usa la versión comprimida para transferencias por API y la versión formateada para archivos de configuración.

Preguntas frecuentes

En JSON, las claves deben ir siempre entre comillas dobles, no se permiten comas finales, y no se pueden usar undefined, funciones, NaN ni Infinity.

No. La especificación JSON no contempla sintaxis de comentarios. Como alternativas se usan JSON5 o JSONC.

La RFC 8259 exige UTF-8. Por razones de interoperabilidad, se recomienda UTF-8.

En la especificación JSON todos los números son de tipo number. Los enteros muy grandes pueden perder precisión si superan MAX_SAFE_INTEGER de JavaScript.

A propósito — Por qué JSON venció a XML

A principios de los años 2000, XML era el formato dominante. En 2001, Douglas Crockford propuso JSON como una alternativa más ligera, manejable y legible, y a partir de la década de 2010 se convirtió en el estándar de facto.

Para los mismos datos, JSON suele ocupar entre un 30 y un 50 % menos de bytes que XML, lo que en la era de las comunicaciones móviles tuvo un impacto directo en la velocidad de respuesta de las aplicaciones.

La RFC 8259 establece que las claves duplicadas son "SHOULD NOT" (no recomendadas), pero no las prohíbe. {"a":1,"a":2} es sintácticamente válido, pero su comportamiento no está definido.