Formateador JSON
Formatea, valida, minifica y ordena JSON.
Acerca de esta herramienta
Pega JSON para formatearlo con la sangría que prefieras, minificarlo para enviarlo u ordenar las claves alfabéticamente para que los diffs sean legibles. Los errores de sintaxis se indican con línea y columna.
Cómo se usa
- Pega tu JSON en el cuadro Entrada, o pégalo en la búsqueda con ⌘K y elige Formateador JSON.
- Elige 2 espacios, 4 espacios, tabulaciones o Minificar para ponerlo todo en una línea.
- Activa Ordenar claves si quieres las claves en orden alfabético, lo que facilita comparar dos versiones.
- Copia el resultado. Si el JSON no es válido, el error indica la línea y la columna que hay que corregir.
Preguntas
- ¿Por qué mi JSON no es válido?
- Las causas habituales son una coma final tras el último elemento, comillas simples en lugar de dobles, claves sin comillas o comentarios. JSON no admite nada de esto. El mensaje de error señala la línea y la columna exactas.
- ¿Puede leer un dict de Python o un objeto de JavaScript?
- Sí. Los valores con comillas simples, True, False, None, claves sin comillas o comas finales se convierten automáticamente en JSON válido, y la línea de estado te avisa de que ha ocurrido.
- ¿Es seguro pegar respuestas de API con datos personales?
- Sí. El formateo se hace en tu navegador y no se envía nada a ningún servidor, así que puedes pegar datos de producción sin que salgan de tu equipo.
- ¿Qué diferencia hay entre formatear y minificar?
- Formatear añade saltos de línea y sangría para que se pueda leer. Minificar elimina todos los espacios opcionales para que el contenido ocupe lo menos posible al enviarlo por la red.
- ¿Qué pasa con las claves duplicadas en un objeto JSON?
- El estándar JSON no prohíbe las claves duplicadas, pero deja abierto su significado. Aquí, como con JSON.parse en todos los navegadores, gana el último valor, así que {"a": 1, "a": 2} se formatea como {"a": 2}. Si parece que una clave desaparece al formatear, busca en la entrada una segunda copia de ella.
- ¿Puedo formatear un archivo JSON grande?
- Sí. Haz clic en Abrir archivo o suelta el archivo en el cuadro Entrada. Se lee localmente, nunca se sube, y se aceptan archivos de hasta 50 MB. Con documentos muy grandes, el cuadro de texto se desplaza más despacio, así que usa Descargar para guardar el resultado como formatted.json en lugar de copiarlo.
- ¿Cómo formateo JSON Lines o NDJSON?
- JSON Lines pone un valor JSON en cada línea, así que el archivo en su conjunto no es JSON válido y el formateador indica un error donde empieza el segundo valor. Formatea una línea cada vez, o convierte el archivo en un array rodeándolo con [ ] y añadiendo una coma al final de cada línea excepto la última.
¿Qué es un formateador y validador de JSON?
Un formateador de JSON toma JSON compacto o desordenado y lo vuelve a escribir con una sangría coherente y una clave por línea, para que los datos anidados se puedan leer. Un validador de JSON comprueba que el texto sigue la gramática de JSON: claves y cadenas entre comillas dobles, sin comas finales, sin comentarios y con true, false y null como únicos literales. Esta herramienta hace ambas cosas en una sola pasada. La entrada válida sale embellecida, y la no válida muestra el mensaje del parser con la línea y la columna.
Embellecer JSON nunca cambia los datos. Las claves, los valores y el orden de los arrays se quedan exactamente igual, y solo cambian los espacios en blanco. Conviene conocer un límite: los números JSON se leen como doubles de JavaScript, así que los enteros mayores que 9007199254740991 pierden precisión. Un ID como 12345678901234567890 sale como 12345678901234567000. Si una API envía ID tan grandes, pídelos como cadenas, que es lo que muchas API ya hacen con los ID de 64 bits.
Cómo solucionar “Unexpected token” en JSON
“Unexpected token” significa que el parser de JSON se ha encontrado con un carácter que no puede aparecer en ese punto. Lee la línea y la columna del error y mira el texto justo antes de esa posición. Los culpables habituales son una coma final como en [1, 2, ], una clave sin comillas, una cadena entre comillas simples, un comentario // copiado de un archivo de configuración o un valor como NaN o Infinity, que JavaScript muestra pero JSON no permite.
El error “Unexpected token < in JSON at position 0” tiene otra causa: el texto es una página HTML, normalmente una página de error o una redirección al inicio de sesión, y no la respuesta de la API que esperabas. Comprueba el estado HTTP y la cabecera Content-Type antes de parsear. Cuando la entrada es un dict de Python o un literal de objeto de JavaScript, el Formateador JSON corrige las comillas simples, True, False, None, las claves sin comillas y las comas finales, y enumera cada corrección en la línea de estado.
¿Conviene ordenar las claves de un JSON? Buenas prácticas de sangría y ordenación
El orden de las claves no tiene significado en un objeto JSON, así que ordenarlas alfabéticamente es seguro y facilita comparar dos versiones. Ordenar claves funciona de forma recursiva: los objetos anidados también se ordenan, mientras que los arrays conservan su orden, porque dentro de un array la posición importa. Ordena ambas versiones y pégalas en Diff de textos: solo aparecerán los cambios reales de valores, y no las claves que simplemente han cambiado de sitio.
Para la sangría de JSON, 2 espacios es la opción más habitual en proyectos de JavaScript y en la documentación de API, 4 espacios coincide con la costumbre de json.dumps(indent=4) en Python, y las tabulaciones permiten que cada lector elija su propio ancho. El JSON minificado tiene su sitio en los payloads de red, las variables de entorno y las líneas de log, donde importa tener un registro por línea. Elijas lo que elijas, mantenlo igual en todo el repositorio para que reformatear no llene de ruido la revisión de código.
¿Algo no funciona o un resultado parece incorrecto? Informar de un problema con esta herramienta