1. Inicio
  2. Herramientas para desarrolladores
  3. Formatear JSON

Formatear JSON online

Pega un JSON desordenado o en una sola línea y obtén una versión legible con la sangría que prefieras, o minifícalo para ocupar el mínimo. Si hay un error de sintaxis, verás en qué línea y columna está.

Cómo usar el formateador

  1. Pega el JSON en el cuadro de entrada: una respuesta de API, un package.json, un registro de log… Se formatea al instante mientras escribes.
  2. Elige la sangría: 2 espacios (la convención de JavaScript, npm y la mayoría de guías de estilo), 4 espacios (habitual en Python con json.dumps(indent=4)) o tabulador. Minificar quita todos los espacios sobrantes.
  3. Marca Ordenar claves si quieres las propiedades de cada objeto en orden alfabético, útil para comparar dos respuestas con un comparador de textos.
  4. Copia o descarga el resultado. Debajo verás el tamaño antes y después, el número de claves y la profundidad máxima de anidación.

Cómo funciona

La herramienta usa JSON.parse para convertir el texto en una estructura de datos y JSON.stringify para volver a escribirla con la sangría elegida. Por eso el resultado es siempre JSON válido y normalizado: las comillas son dobles, los caracteres escapados innecesariamente (como é) se muestran como su carácter real (é) y los números se escriben en su forma más corta (1.50 pasa a 1.5, 1e3 a 1000).

Ten en cuenta un límite: JavaScript representa los números como coma flotante de doble precisión, así que los enteros mayores que 9.007.199.254.740.991 (253 − 1) pierden exactitud. Si trabajas con identificadores de 64 bits, como los de algunas API, guárdalos como texto entre comillas.

Ejemplo: antes y después

Esta respuesta minificada ocupa 57 bytes:

{"ok":true,"datos":[{"id":1,"tags":["a","b"]}],"total":1}

Con 2 espacios de sangría queda así (más bytes, pero legible y fácil de revisar en un control de versiones):

{
  "ok": true,
  "datos": [
    {
      "id": 1,
      "tags": [
        "a",
        "b"
      ]
    }
  ],
  "total": 1
}

Errores de sintaxis más frecuentes

ErrorEjemplo incorrectoCorrección
Coma final[1, 2, 3,][1, 2, 3]
Comillas simples{'a': 'b'}{"a": "b"}
Clave sin comillas{a: 1}{"a": 1}
Comentarios{"a": 1 // nota}Elimínalos: JSON no los admite
Valores de JavaScriptundefined, NaN, Infinitynull o un número finito
Salto de línea literal en un texto"línea 1
línea 2"
"línea 1\nlínea 2"

Cuando el JSON no es válido, la herramienta muestra el mensaje del analizador y, si el navegador lo indica, la línea y la columna. Para un diagnóstico más detallado en español usa el validador de JSON.

Usos habituales

  • Depurar API: leer respuestas largas copiadas de la consola del navegador o de un curl.
  • Inspeccionar tokens: el payload de un JWT es JSON; el decodificador de JWT lo extrae y lo formatea.
  • Pasar a hoja de cálculo: si el JSON es una lista de objetos, conviértelo con JSON a CSV; el camino inverso lo hace CSV a JSON.
  • Reducir peso: minificar un archivo de configuración o de datos antes de incrustarlo en una página.

Privacidad: todo el procesamiento ocurre en tu navegador. El JSON no se envía ni se guarda en ningún servidor.

Preguntas frecuentes

¿Cómo formateo un JSON que está en una sola línea?

Pégalo en el cuadro de entrada: la herramienta lo analiza y lo muestra con una clave por línea y la sangría elegida (2 espacios por defecto). Luego pulsa Copiar o Descargar.

¿Formatear un JSON cambia sus datos?

No. Solo cambian los espacios y saltos de línea entre elementos. La única excepción opcional es ordenar claves, que reordena las propiedades de los objetos (en JSON el orden de las claves no tiene significado), y los números muy grandes, que JavaScript redondea a 15–17 cifras significativas.

¿Mis datos se envían a algún servidor?

No. El análisis se hace con el motor JSON de tu navegador y nada sale de tu dispositivo, por lo que puedes pegar respuestas de API con datos internos.

¿Qué diferencia hay entre formatear y minificar JSON?

Formatear añade sangría y saltos de línea para leerlo; minificar los elimina para reducir el tamaño al enviarlo o guardarlo. Ambos producen exactamente los mismos datos.

¿Por qué mi JSON da error si viene de JavaScript?

Porque un objeto literal de JavaScript no siempre es JSON válido: JSON exige comillas dobles en claves y textos, no admite comas finales, comentarios, undefined ni NaN. El validador de JSON te indica cuál de estos casos tienes.