ToolActToolAct

Herramienta de Formato JSON

Entrada JSON
Salida Formateada
Líneas: 1Caracteres: 0Bytes: 0
Líneas: 1Caracteres: 0

¿Qué es el Formateador JSON?

El formateador JSON hace legible JSON compacto o desordenado añadiendo indentación, saltos de línea y estructura visible. JSON se usa en respuestas de API, configuraciones, logs, feature flags, datos de prueba e integraciones no-code, donde una coma faltante, comillas incorrectas o un valor anidado inesperado pueden causar errores de parseo. La herramienta ayuda a inspeccionar objetos, arrays, claves, valores y posibles zonas de error rápidamente, y también permite volver a compactar cuando se necesita una carga menor. El formateo no cambia el significado de los datos ni valida automáticamente un esquema de negocio. En APIs productivas deben revisarse tipos, campos obligatorios, null y contratos de versión.

Cómo usar

Cómo usar

  1. Pega o introduce datos JSON en el cuadro de entrada izquierdo
  2. Selecciona el tamaño de sangría (2 espacios, 4 espacios o Tab)
  3. Pulsa Format para embellecer o Minify para eliminar espacios en blanco
  4. Los resultados aparecen automáticamente a la derecha con resaltado de sintaxis
  5. Pulsa Copy o Download para guardar el resultado

Notas de validación JSON

  • El formateo confirma que el texto es JSON válido, pero no garantiza que los datos coincidan con el esquema de tu negocio.
  • Cuando aparezcan errores, revisa la línea y la columna indicadas en busca de comillas simples, comas finales, comentarios o caracteres de control sin escapar.

Casos de uso

Inspeccionar respuestas de API sin salir del navegadorPega un cuerpo de respuesta compacto para expandir objetos y arrays anidados con dos espacios, cuatro espacios o tabulaciones. Los errores de análisis incluyen línea y columna calculada cuando es posible, lo que permite corregir una respuesta mal formada sin recorrer todo el documento a ojo.
Preparar JSON para commits y revisionesCuando una configuración, fixtures de ejemplo o datos de traducción necesitan un formato estable, el formateador produce una salida determinista con la indentación seleccionada. El modo de minificación está disponible para la dirección contraria cuando los mismos datos deben copiarse en una variable de entorno o campo de solicitud.
Limpiar datos sensibles de forma localEl parser, formateador, minimizador, copia y descarga se ejecutan en el navegador, manteniendo tokens, campos de clientes, feature flags internos y formas de API sin publicar alejados de embellecedores de terceros. Valida la salida contra el esquema OpenAPI o JSON Schema por separado, ya que el formateo demuestra que el documento se analiza pero no que los datos cumplan el contrato esperado, y vigila la coerción silenciosa de tipos en campos numéricos grandes.
Comparar dos payloads JSON campo a campoFormatea tanto la respuesta antigua como la nueva con la misma indentación, luego alinéalas lado a lado en un visor de diferencias para detectar claves renombradas, cambios de tipo y diferencias entre null y campos ausentes. Esto es más rápido que examinar JSON minificado sin formato, especialmente en payloads de webhook donde un solo campo intercambiado rompe los consumidores.
Compactar para variables de entorno o payloads curlCambia al modo de minificación para ajustar un bloque grande de configuración en una variable de entorno de una sola línea, archivo .env o argumento --data de curl. Confirma después con el parser del destino, ya que algunos clientes HTTP aún tienen problemas con cuerpos de una sola línea muy largos de varios cientos de kilobytes. El JSON estricto (RFC 8259) prohíbe comas finales y comentarios, por lo que cuando la entrada es JSON5 o HJSON, el parser estricto rechazará líneas que empiecen con // o terminen con ,]; en ese caso, habilita un modo tolerante o elimina los comentarios antes de formatear. Los valores enteros grandes por encima de 2^53 pierden precisión porque JavaScript los representa como doubles IEEE-754.

Principio técnico

JSON (JavaScript Object Notation) está definido por RFC 8259 / ECMA-404. La gramática es un subconjunto estricto de los literales de objeto de JavaScript: las cadenas deben ir entre comillas dobles, las claves deben estar entrecomilladas, las comas finales son ilegales y los comentarios están prohibidos. Un formateador analiza el documento con `JSON.parse()` en el grafo de objetos del lenguaje anfitrión, y luego lo reserializa mediante `JSON.stringify(value, replacer, indent)` donde indent es un número (1-10 espacios) o una cadena (`'\t'`). El análisis es O(n) y generalmente es más rápido que la fase de stringify porque la construcción de la salida asigna nuevas cadenas. El manejo de números sigue la precisión doble de IEEE 754: los enteros mayores que `Number.MAX_SAFE_INTEGER` (2^53 - 1 = 9007199254740991) pierden precisión, por lo que `9007199254740993` se redondea a `9007199254740992`. Los decimales periódicos como `0.1 + 0.2` se resuelven como `0.30000000000000004` tras el análisis. Las cadenas Unicode permiten escapes `\uXXXX` incluyendo pares sustitutos (`\uD83D\uDE00` -> emoji); el parser rechaza sustitutos solitarios sin pareja. El espacio en blanco solo es significativo dentro de las cadenas: cualquier combinación de espacio, tabulador, LF, CR entre tokens se analiza de forma idéntica. Las relajaciones no estándar comunes son JSON5 (comentarios, comas finales, claves sin comillas) y JSONC (configuración de VS Code). El JSON estándar no las permite y `JSON.parse` lanza `SyntaxError` al encontrarlas. Las alternativas de streaming como NDJSON (un objeto por línea) y JSON Lines evitan cargar documentos completos en memoria. Para entradas profundamente anidadas, el límite de pila de V8 (~10,000 frames) limita los parsers basados en recursión; los parsers de producción usan máquinas de estado iterativas para elevar ese límite.

  • Gramática RFC 8259 / ECMA-404: seis tipos de valor (objeto, array, cadena, número, true/false, null); cadenas entre comillas dobles; claves obligatoriamente entrecomilladas; sin comas finales; sin comentarios.
  • `JSON.parse(text)` se ejecuta en O(n) y lanza `SyntaxError` con desplazamiento de carácter en entradas inválidas; `JSON.stringify(value, replacer, indent)` produce salida formateada con indentación de 2-10 espacios o `'\t'`.
  • Precisión numérica IEEE 754: `Number.MAX_SAFE_INTEGER = 2^53 - 1`; los enteros por encima de esto se redondean al double representable más cercano, por lo que los IDs de chat y los IDs Snowflake de Twitter deben transportarse como cadenas.
  • Los escapes Unicode `\uXXXX` soportan todo el BMP; los caracteres fuera del BMP requieren codificación por par sustituto `\uD83D\uDE00`; el parser rechaza sustitutos solitarios sin pareja según RFC 8259 §8.2.
  • Fallos de análisis comunes: cadenas entre comillas simples (`'foo'`), coma final tras el último elemento de array/objeto, caracteres de control sin escapar dentro de cadenas, barra invertida sin escapar, cierre `}`/`]` faltante, BOM (`\uFEFF`) al inicio.
  • Las referencias circulares lanzan `TypeError: cyclic object value` en `JSON.stringify`; usa un callback `replacer` con un WeakSet para romper ciclos, o bibliotecas como `flatted` / `json-stringify-safe`.
  • Variantes no estándar: JSON5 (`.json5`, permite comentarios y comas finales), JSONC (configuración de VS Code), NDJSON / JSON Lines (un objeto por línea, compatible con streaming): todos rechazados por `JSON.parse` estricto.

Ejemplos

Ejemplo de objeto

Entrada:
{
  "name": "ToolAct",
  "type": "web tool",
  "active": true
}

Salida: formateado con indentación de 2 espacios y orden de claves estable

Ejemplo de array

Entrada: [1,2,3,"a","b","c"]
Salida:  formateado con indentación de 2 espacios; los números siguen siendo numéricos, las cadenas conservan las comillas

Estructura anidada

Entrada:
{"user":{"name":"Alex","skills":["JavaScript","Python"]}}

Salida:
{
  "user": {
    "name": "Alex",
    "skills": [
      "JavaScript",
      "Python"
    ]
  }
}
Nota: los objetos y arreglos anidados se indentan recursivamente; elige el ancho de indentación en la barra de herramientas

Preguntas frecuentes

¿Qué hace el formateador?

Reformatea JSON: lo embellece con la sangría elegida (2 o 4 espacios) o lo minifica en una sola línea. Valida mientras analiza, así que los errores de sintaxis se reportan con línea y columna.

¿Por qué mi JSON se rechaza como inválido?

Causas habituales: comas finales (legales en JS, ilegales en JSON), cadenas con comillas simples (deben ser dobles), claves sin comillas, comentarios (// o /* */) o corchetes faltantes. La página informa la ubicación del fallo de análisis. JSON5 y JSONC (JSON con comentarios) son superconjuntos de JSON; usa otro parser para esos formatos.

¿Se conserva el orden de las claves?

La especificación JSON dice que el orden de las claves no es significativo, pero la mayoría de los parsers lo conservan en el ida y vuelta. Esta herramienta mantiene el orden de inserción, que suele ser lo que quieres para diffs legibles.

¿Puede manejar archivos JSON muy grandes?

Los navegadores modernos manejan archivos JSON de 10-50 MB, pero pueden ralentizar el editor. Para archivos de cientos de MB, usa un parser en streaming (jq por línea de comandos, herramientas ndjson); los parsers de navegador cargan el árbol completo en memoria.

¿Se sube mi JSON?

No. El análisis y el formateo se ejecutan en tu navegador mediante JSON.parse y JSON.stringify. El JSON pegado no se transmite.

¿Por qué pierden precisión los números grandes?

JSON.parse de JavaScript usa Number, que es doble precisión IEEE 754. Los enteros por encima de 2^53 pierden precisión (por ejemplo, 9007199254740993 se redondea silenciosamente). Para BigInt o un análisis que conserve cadenas, usa un parser personalizado o premarca los números grandes como cadenas en el productor.

¿Qué pasa con JSONC (JSON con comentarios)?

El JSON estricto prohíbe los comentarios. Algunos IDE (los archivos de configuración de VS Code) usan JSONC, que añade comentarios // y /* */. El formateador suele admitir un modo 'JSONC' que conserva los comentarios; en modo estricto los comentarios son un error de sintaxis.