Formateador JSON
Formatea o comprime JSON y ve exactamente dónde falla una entrada inválida.
La salida aparecerá aquí
Qué hace este formateador de JSON
JSON (JavaScript Object Notation) es el formato más común para mover datos estructurados entre programas: respuestas de API, archivos de configuración, líneas de registro y más. Está diseñado para ser compacto, lo que también lo hace difícil de leer cuando los objetos se anidan varios niveles o llegan en una sola línea. Esta herramienta toma cualquier JSON que pegues y lo reescribe de dos formas: embellecido, con sangría uniforme para que la estructura se vea de un vistazo, o minificado, sin cada espacio opcional para que sea lo más pequeño posible al enviarlo.
También valida mientras formatea. Como analiza el texto antes de volver a serializarlo, un JSON inválido nunca produce una salida engañosa: en su lugar obtienes la línea y la columna exactas donde falló el análisis, para ir directamente al problema.
Embellecer vs. minificar: cuándo usar cada uno
Los dos modos tienen objetivos opuestos, y la mayoría de los flujos de trabajo usan ambos en distintas etapas:
- Embellece cuando lees o depuras: inspeccionar una respuesta de API, comparar dos payloads o revisar un archivo de configuración en un pull request. La sangría convierte un muro de texto en un árbol navegable.
- Minifica cuando envías: incrustar JSON en HTML, guardarlo en una cookie o caché, o mandarlo en el cuerpo de una petición donde cada byte cuenta. El JSON minificado es exactamente los mismos datos, solo que sin los espacios.
El selector de sangría (2 espacios, 4 espacios o tabulación) solo afecta a la salida embellecida. Dos espacios es la convención más común en JavaScript y en el tooling web; cuatro espacios o tabulaciones convienen a los equipos que las prefieren. Elijas lo que elijas, el resultado sigue siendo JSON válido: la sangría es puramente cosmética.
Leer los errores de validación
Cuando el JSON es inválido, la herramienta reporta la línea y la columna del primer problema en lugar de un mensaje vago de "inválido". Los mensajes de error de los motores difieren entre navegadores y a menudo omiten una posición, así que la ubicación se calcula de forma independiente y señala un buen punto por donde empezar. Corrige el primer error y vuelve a comprobar: un solo carácter suelto suele derivar en varios problemas aparentes.
Errores comunes de JSON
JSON es más estricto que los objetos literales de JavaScript a los que se parece. Estos son los errores que más confunden:
- Comas finales: una coma después del último elemento de un objeto o array es válida en JavaScript pero no en JSON.
- Comillas simples: las cadenas y claves de JSON deben usar comillas dobles. 'valor' es inválido; "valor" es correcto.
- Claves sin comillas: toda clave de objeto debe ser una cadena entre comillas, así que { name: "x" } debe pasar a { "name": "x" }.
- Comentarios: JSON no tiene sintaxis de comentarios. // y /* */ provocarán un error de análisis.
- Números especiales: NaN, Infinity y -Infinity no son números JSON válidos.
- Comillas equivocadas: las "comillas tipográficas" pegadas desde un procesador de textos parecen comillas pero son caracteres distintos y no se analizarán.
Preguntas frecuentes
- ¿Se envía mi JSON a un servidor?
- No. El análisis, la validación y el formateo ocurren todos en tu navegador con JavaScript. Nada de lo que pegas se sube, almacena ni registra, así que es seguro usarlo con payloads sensibles.
- ¿El formateo cambia mis datos?
- No. Embellecer y minificar solo añaden o quitan espacios entre tokens. Las claves, valores, números y la estructura son idénticos: solo cambia la disposición.
- ¿Por qué reordena o reformatea mis números?
- La herramienta analiza el JSON a valores reales y los serializa de nuevo, así que los números se normalizan a su forma canónica (por ejemplo 1e3 pasa a 1000). El valor no cambia; solo su representación textual es estándar.
- ¿Puede manejar archivos JSON muy grandes?
- Puede manejar payloads grandes, pero como todo se ejecuta en el navegador, los archivos extremadamente grandes (decenas de megabytes) pueden ir lentos o alcanzar límites de memoria según tu dispositivo.
- ¿Conserva el orden de las claves del objeto?
- Sí. El orden de las claves se mantiene exactamente como aparece en tu entrada: la herramienta no ordena las claves.
- ¿Cuál es la diferencia entre JSON y un objeto de JavaScript?
- JSON es un formato de texto para intercambio de datos; un objeto de JavaScript es un valor en memoria. JSON es más estricto: exige claves y cadenas entre comillas dobles, prohíbe comas finales y comentarios, y solo admite un conjunto fijo de tipos de valor (cadenas, números, booleanos, null, arrays y objetos).
- ¿Puedo formatear JSON5 o JSONC (JSON con comentarios)?
- No. Esta herramienta valida JSON estricto y estándar. JSON5 y JSONC añaden comentarios y otras comodidades que no forman parte de la especificación de JSON, así que se reportarán como errores.