Saltar al contenido
jsonbeautifiers
Español

Acerca de

Cada herramienta de aquí es una vista sobre un único parser de JSON, escrito desde cero en vez de envolver JSON.parse. Esa decisión es la razón de que el sitio exista.

Por qué escribir un parser

Envolver el parser incorporado es lo obvio, y casi toda herramienta JSON en línea lo hace. Te da validación gratis. También te da tres problemas que no se pueden arreglar desde fuera.

Los errores son inútiles. Un parser incorporado informa de un problema y se detiene. Te da un mensaje escrito para un compilador, ninguna sugerencia de qué hacer y, en varios runtimes, ningún número de línea. Quien tiene un payload roto necesita el carácter exacto, qué se esperaba ahí y el arreglo. Conseguir eso significa ser dueño del escaneo.

Reescribe tus datos. Parsea 12345678901234567890, vuelve a serializarlo y obtienes 12345678901234567000. Nada te avisa. Un formateador construido así ha cambiado tu payload antes de imprimir nada, y para un ID o un importe eso es un bug serio que no parece nada. Nuestro formateador vuelve a emitir el texto fuente de cada número, así que no puede pasar. La explicación completa está aquí.

No puede ayudar con entradas que casi son JSON. Comas finales, comillas simples, literales de Python, comentarios, un espacio duro pegado desde un cliente de chat. Para arreglar eso y explicar qué cambió hay que detectarlo con precisión, lo que de nuevo significa ser dueño del escaneo.

Qué se ganó con ello

  • Errores con línea, columna, rango resaltado, qué se esperaba y un arreglo.
  • Todos los errores de un documento reportados a la vez, en vez de uno por intento.
  • Números que sobreviven al formateo exactamente como los pegaste.
  • Claves duplicadas reportadas con la posición de ambas.
  • Caracteres invisibles nombrados con precisión. Un espacio duro se reporta como espacio duro en la línea 4, columna 12, y no como un token inesperado.
  • Un modo de reparación que arregla el casi-JSON y enumera cada cambio, separando las decisiones opinables de las seguras.
  • Un parser iterativo, así que la profundidad de anidamiento la limita la memoria y no la pila de llamadas.

Aquí la privacidad es una decisión técnica, no de marketing

En noviembre de 2025, dos de los mayores formateadores JSON en línea filtraron más de 80.000 pegados guardados, unos 5 GB acumulados en cinco años. Los datos expuestos incluían credenciales de Active Directory, claves de acceso a la nube, tokens de acceso personal y registros bancarios pertenecientes a organizaciones gubernamentales, sanitarias y aeroespaciales.

El detalle instructivo no es la filtración. Es que uno de esos sitios te dice, en su portada, que tus datos se validan en el navegador, mientras su botón de subida de archivos envía tu archivo a un servidor. Ambas afirmaciones eran ciertas sobre funciones distintas, y nadie que leyera la página podía distinguir cuál era cuál.

Así que este sitio no te pide que confíes en una frase. Cada página se sirve con una lista de permitidos de connect-src que nombra un único destino, el endpoint de analítica que cuenta las visitas de página. No hay endpoint de subida, ni función de cargar desde URL, ni enlaces guardados, ni cuentas, ni publicidad, porque cada una de esas cosas necesitaría una excepción lo bastante ancha como para llevarse tu payload. Aquí tienes cómo verificarlo todo tú mismo.

Cómo está construido

  • Páginas estáticas, construidas con Astro. Sin renderizado en servidor y sin API.
  • El parser, el formateador, el motor de reparación, el escritor de CSV, el parser de XML, el diff y el motor de JSONPath están escritos para este sitio, y cubiertos por una suite de tests que corre en cada build.
  • CodeMirror 6 para el editor, cargado de forma diferida detrás de un textarea normal que funciona por sí solo. Monaco habrían sido unos 5 MB.
  • js-yaml es la única dependencia de terceros en tiempo de ejecución, cargada solo en las dos páginas de YAML. YAML 1.2 es lo bastante grande como para que una implementación parcial aceptara documentos y produjera valores erróneos en silencio, que es justo el modo de fallo que este sitio existe para evitar.
  • Todo el parseo y el formateo corren en un Web Worker, así que un documento de 10 MB no congela la pestaña.
  • Las fuentes están autoalojadas y subconjuntadas. No se descarga nada de un CDN.

Correcciones

El argumento del sitio es que es cuidadoso con la corrección, lo que significa que los errores aquí importan más que en otro sitio. Todo mensaje de error citado aquí se produjo ejecutando el parser, no de memoria: cadenas de V8 de Node v24.15.0 y cadenas de Python de CPython 3.14.3. Las cadenas de Firefox y Safari están ausentes a propósito porque no pudimos ejecutarlas y verificarlas.

Si encuentras algo mal, dínoslo y se arreglará y quedará registrado en el registro de cambios.

Quién lo mantiene

Esta sección está deliberadamente en blanco en vez de rellenada con un nombre que suene plausible. La investigación para este sitio encontró un competidor cuyo marcado de artículos acredita a un autor llamado "Roronoa Zoro", con el cargo de "Infrastructure Engineer", que es un personaje de ficción de una serie de manga. Inventar a una persona para satisfacer una señal de confianza es peor que no tener ninguna señal, así que aquí no hay nada hasta que haya algo cierto que poner.