fruere.

Formateador y validador de JSON

Pega un JSON para darle formato, comprimirlo o comprobar si es válido. Si tiene un error, te dice en qué línea y columna está.

Cómo funciona

  • Validador propio y estricto, basado en la sintaxis del estándar JSON (RFC 8259). Así el mensaje de error es el mismo en cualquier navegador. La línea y la columna empiezan en 1, y el salto de línea puede ser de Windows, Mac o Linux.
  • Tus datos no se tocan. Los números y los textos se copian tal como los escribiste, sin convertirlos: 1.0 sigue siendo 1.0 y los acentos escritos como \u00e9 no cambian. Formatear solo modifica los espacios y los saltos de línea fuera de los textos, y el orden de las claves si activas esa opción.
  • Avisa de enteros demasiado grandes. JavaScript solo guarda enteros con exactitud hasta 9007199254740991 (253 − 1). Aquí se conservan completos, pero si otro programa los lee con JavaScript los redondeará, y la herramienta lo señala. También avisa de números fuera del rango representable, como 1e999.
  • Claves repetidas. El estándar recomienda que las claves de un objeto sean únicas, pero no lo exige, y cada programa hace algo distinto: JSON.parse de JavaScript se queda con la última. Aquí se conservan todas y se avisa de cuáles se repiten y dónde.
  • Ordenar claves actúa en todos los niveles y compara por código de carácter, así que las mayúsculas van antes que las minúsculas (Zeta antes de alfa). El orden de los elementos de una lista nunca cambia. Si hay claves repetidas, conservan su orden relativo.
  • Lo que rechaza, porque JSON no lo admite: comentarios, comas de más al final, comillas simples, claves sin comillas, números con ceros a la izquierda (007), con + delante o sin dígitos junto al punto (.5, 5.), valores como NaN, Infinity o undefined, y saltos de línea o tabuladores sin escapar dentro de un texto.
  • Límites: hasta 512 niveles de anidación, y un carácter BOM al principio se ignora. Si el resultado es enorme, el cuadro muestra solo el principio (3 000 líneas o 200 000 caracteres), porque los navegadores se vuelven muy lentos al pintar textos gigantes; «Copiar resultado» copia siempre el resultado completo. Para entradas muy grandes, la fluidez depende de tu dispositivo.
  • No se guarda nada. Lo que pegas y el resultado existen solo en esta página: no se envían a ningún servidor nuestro ni se almacenan en tu navegador.

Cuándo te sirve

  • Leer la respuesta de una API que llega en una sola línea, para ver su estructura.
  • Encontrar por qué un archivo de configuración no carga: el error con línea y columna te lleva directo al carácter.
  • Minificar un JSON para pegarlo en una variable de entorno o en el cuerpo de una petición.
  • Comparar dos JSON: ordena las claves en ambos y sus diferencias reales saltan a la vista en un comparador de textos.
  • Detectar claves duplicadas en un archivo que se ha editado a mano.

Preguntas frecuentes

Mi editor o mi código lo acepta, ¿por qué aquí da error?

Probablemente es un objeto de JavaScript, no JSON. Se parecen, pero JavaScript admite comillas simples, claves sin comillas, comentarios y comas finales, y JSON no. Un JSON válido lo es en cualquier lenguaje.

¿Por qué no corrige los errores automáticamente?

Porque arreglarlos exige adivinar qué quisiste escribir, y una suposición equivocada cambiaría tus datos sin que lo notes. Te indica dónde está el problema y qué regla se incumple, y el arreglo lo decides tú.

¿Cambia mis datos al formatear o minificar?

No. Los valores quedan igual; solo cambian los espacios y los saltos de línea entre elementos y, si lo activas, el orden de las claves. Los números no se reescriben, así que no pierden dígitos.

¿Qué significa la columna del error?

Es la posición del carácter dentro de su línea, empezando en 1. Un tabulador cuenta como un solo carácter. La cuenta se hace en unidades de texto de JavaScript, así que un emoji ocupa 2 columnas. Al pulsar «Formatear» o «Minificar» con un error, el cursor se coloca justo en ese punto.

¿Se guarda o se envía lo que pego?

No. Se procesa en tu navegador y desaparece al recargar. Lo único que se mide, de forma agregada con Google Analytics, es cuántas personas visitan la herramienta.