Formatear JSON online — Embellecer, minificar y validar
Embellece, minifica y valida JSON, ordena claves y localiza errores por línea y columna
Funciona en tu navegador · no se sube nada
Qué es
Un formateador JSON convierte una larga línea de JSON en texto legible y sangrado, o bien elimina todos los espacios opcionales para que ocupe menos. Te sirve para revisar la respuesta de una API, ordenar un archivo de configuración o encontrar el punto exacto donde se rompió la sintaxis. El resultado se actualiza mientras escribes, así que no hay que pulsar ningún botón.
Cómo se usa
- Pega tu JSON en el cuadro de entrada.
- Elige sangría de 2 espacios, 4 espacios o tabulación, o selecciona Minificar.
- Activa Ordenar claves si quieres las claves ordenadas por código de carácter. El orden se aplica también a los objetos anidados dentro de otros objetos y de arrays.
- Copia el resultado. Si hay un error, se muestran la línea y la columna, así que empieza a corregir por ahí.
Cómo funciona
- La gramática es la de JSON según la RFC 8259 (ECMA-404): claves y cadenas solo entre comillas dobles, sin comentarios y sin comas finales.
- Las posiciones de error son líneas y columnas que empiezan en 1.
\n,\r\ny un\rsuelto cuentan cada uno como un salto de línea. Las columnas cuentan caracteres (puntos de código), así que un emoji ocupa una sola columna, y el circunflejo bajo la línea del error respeta las tabulaciones. Los números que desbordan a Infinity (como1e999) se convierten ennullcon un aviso, y un anidamiento de más de 512 niveles se rechaza con un mensaje explícito. - El orden de claves se aplica en todos los niveles por orden de unidades de código (mayúsculas antes que minúsculas) y no toca el orden de los arrays. Si una clave aparece dos veces en el mismo objeto (
{"a":1,"a":2}), según las reglas de JSON solo se conserva el último valor: el resultado se genera igualmente, pero un aviso indica la clave y la línea y columna donde se repite. Por cómo funcionan los objetos de JavaScript, las claves con forma de entero, como"1"y"2", siempre van primero y en orden numérico, sea cual sea la opción elegida. - La salida conserva tal cual los caracteres coreanos, chinos, acentuados y los emojis, y solo escapa lo que JSON exige, como
\ny\". Un escape Unicode como"A"se escribe como"A". - Los números se leen como Number de JavaScript. Los enteros por encima de 2^53 no se conservan con exactitud, y un aviso te lo indica.
Ejemplos
| Entrada | Opción | Resultado |
|---|---|---|
{"b":1,"a":{"d":2,"c":3}} |
Minificar + ordenar claves | {"a":{"c":3,"d":2},"b":1} |
{"name":"홍길동"} |
2 espacios | varias líneas, "name": "홍길동" |
{"a": 1,} |
— | línea 1, columna 9: carácter inesperado } |
{"id": 12345678901234567890} |
Minificar | {"id":12345678901234567000} (con aviso) |
Preguntas frecuentes
¿Veré dónde está roto el JSON?
Sí. La herramienta recorre la entrada desde el principio e indica la línea y la columna del primer carácter que incumple las reglas, mostrando esa línea con un acento circunflejo (^) debajo del punto exacto. Calcula la posición por su cuenta en lugar de depender del mensaje de error del navegador, así que todos los navegadores dan la misma respuesta.
¿Acepta comentarios o comas finales?
No. Solo se acepta JSON estricto según la RFC 8259. Los comentarios, las comas finales, las cadenas entre comillas simples y las claves sin comillas se marcan como errores con su ubicación.
¿Pueden cambiar los números muy grandes?
Sí. La herramienta usa el analizador JSON de JavaScript, así que los enteros mayores que 9007199254740991 (2^53-1) se redondean al valor representable más cercano. Si la entrada contiene un número así, aparece un aviso. Si necesitas conservar todos los dígitos de un ID de ese tamaño, ponlo entre comillas como cadena.
¿Se envía mi JSON a un servidor?
No. Todo se ejecuta en tu navegador y no se sube ni se guarda nada.