JSON a TOML

Convertidor online gratuito de JSON a TOML. Pega un objeto JSON y obtén al instante una configuración TOML v1.0 con tablas anidadas ([section]), subtablas ([a.b]) y arrays de tablas ([[items]]). Genera configuraciones para Cargo.toml, pyproject.toml, Hugo y Prettier localmente en tu navegador.

Relacionado

¿Qué es TOML y por qué convertir JSON a TOML?

TOML son las siglas de Tom's Obvious, Minimal Language, un formato de archivo de configuración creado por el cofundador de GitHub Tom Preston-Werner en 2013. Sus objetivos de diseño son: sintaxis obvia, complejidad mínima, fácil lectura humana y semántica sin ambigüedad. TOML 1.0 se convirtió en la versión estable en 2021 (toml-lang/toml), y ahora es el formato de configuración predeterminado para el ecosistema Rust Cargo, Python PEP 621 (pyproject.toml), Hugo, Prettier, Deno, Taplo y muchas otras herramientas.

TOML tiene varias ventajas claras sobre JSON y YAML en escenarios de configuración: ① sin trampas de indentación como YAML — YAML se basa en la indentación para expresar jerarquía, por lo que un error de indentación puede cambiar completamente el significado de una configuración (una lista se convierte en cadena), mientras que TOML utiliza declaraciones [table] explícitas sin ambigüedad; ② mejor que JSON para configuraciones — las comillas y llaves de JSON son verbosas para configuraciones complejas, la sintaxis key = value de TOML es más limpia y admite comentarios de forma nativa; ③ sistema de tipos explícito — TOML distingue siete tipos (integer/float/string/boolean/datetime/array/table), sin la ambigüedad de JSON sobre si un número es integer o float, y sin el problema Norway de YAML 1.1 (NO parseado como booleano false).

La estructura central de TOML consta de cuatro elementos: ① pares clave-valor (key = value) para elementos básicos de configuración; ② Tablas declaradas con [name] para grupos con nombre, con soporte de anidamiento con puntos ([a.b.c]); ③ Arrays de Tablas declarados con [[name]] para listas de objetos homogéneos, utilizados a menudo para configuraciones multi-entorno, listas de plugins y listas de dependencias; ④ Arrays que admiten sintaxis en línea ([1, 2, 3]) o forma multilínea para colecciones primitivas. La herramienta reconoce de forma inteligente las estructuras JSON durante la conversión y elige la sintaxis TOML más adecuada.

Las motivaciones comunes para convertir JSON a TOML incluyen: ① migrar proyectos del ecosistema Node.js al ecosistema Rust/Python y unificar formatos de configuración a TOML; ② equipos que deciden consolidar configuraciones JSON dispersas bajo TOML, aprovechando la jerarquía [section] de TOML para evitar la carga de legibilidad de JSON profundamente anidados; ③ reemplazar YAML con TOML para eliminar errores inducidos por la indentación; ④ convertir metadatos JSON upstream en TOML dentro de CI/CD para herramientas downstream. Esta herramienta cubre todos estos escenarios de conversión.

El proceso de conversión es esencialmente un mapeo del árbol de sintaxis abstracta: JSON.parse() analiza el texto en un objeto JavaScript (AST), luego recorre recursivamente cada nodo: las cadenas, números, booleanos y null se asignan a los escalares TOML correspondientes; los arrays se dividen en arrays en línea o arrays de tablas según el tipo de elemento; los objetos anidados se asignan a tablas o subtablas. La salida final es texto serializado según la especificación TOML. Este mapeo estructurado garantiza que el resultado de la conversión sea 100 % sintácticamente válido, sin errores de formato.

Casos de uso

  • Preparar Cargo.toml para un proyecto Rust: convierte configuraciones JSON estilo package.json/tsconfig.json a TOML para que coincidan con la cadena de herramientas Cargo
  • Generar pyproject.toml para proyectos Python: convierte metadatos JSON estilo setup.py/setup.cfg a pyproject.toml conforme a PEP 621
  • Migrar configuración de Hugo/Deno/Prettier: pasa configuraciones JSON al formato TOML para una estructura de secciones más limpia
  • Migración de cadena de herramientas DevOps: unifica las configuraciones de pipelines CI/CD de JSON a TOML para un formato consistente en el equipo
  • Revisión de formato de configuración: convierte rápidamente configuraciones JSON existentes a TOML para comparar y elegir el mejor formato para tu proyecto
  • Aprender la sintaxis TOML: cuando ya tienes una estructura JSON y quieres ver cómo TOML expresa tablas anidadas y arrays de tablas

Cómo Usar

  1. Pega el contenido JSON en el editor izquierdo, o haz clic en el botón de carga para seleccionar un archivo .json/.txt. También puedes hacer clic en Muestra para cargar un ejemplo anidado completo
  2. La herramienta analiza el JSON en tiempo real y genera código TOML a la derecha según la especificación v1.0. Los pares clave-valor, tablas anidadas y arrays de tablas se escriben automáticamente con la sintaxis adecuada
  3. Si el JSON tiene un error de sintaxis, se muestra un mensaje de error en rojo. Haz clic en el enlace para saltar a la herramienta Reparar JSON y corregir automáticamente comas finales y otros errores comunes
  4. Cuando estés satisfecho con el resultado, haz clic en Copiar para copiar el contenido TOML, o en Descargar para guardarlo como archivo config.toml para tu proyecto

Características

  • Salida TOML v1.0 conforme al estándar: funciona de inmediato con Cargo, Poetry, Hugo, Prettier, Deno, Taplo y cualquier herramienta compatible con TOML
  • Mapeo automático de objetos anidados: objetos JSON anidados se transforman en tablas TOML ([a]) y subtablas ([a.b.c]) con jerarquía clara
  • Detección inteligente de arrays de tablas: los arrays de objetos (por ejemplo, listas de conexiones de base de datos) se convierten automáticamente en tablas TOML [[items]]
  • Escape seguro de cadenas: comillas dobles, barras invertidas, saltos de línea, tabulaciones y otros caracteres especiales se escapan según las reglas TOML para que la salida siempre sea parseable
  • Mapeo automático de tipos: cadenas, números, booleanos y null de JSON se asignan a TOML string/integer/float/boolean (null se convierte en cadena vacía)
  • Editor de dos paneles en tiempo real: pega JSON a la izquierda y ve al instante la salida TOML a la derecha sin necesidad de hacer clic
  • Datos de muestra rápidos: carga un ejemplo completo con objetos anidados, arrays y arrays de tablas para ver el resultado de la conversión con un solo clic
  • Carga y descarga de archivos: carga archivos .json/.txt directamente y descarga el resultado convertido como config.toml con un solo clic
  • Paneles redimensionables e historial: arrastra el divisor del panel en escritorio, guarda automáticamente las últimas 200 conversiones para retroceder fácilmente
  • Salto al formateador JSON: tras convertir, salta directamente al formateador JSON para embellecer, validar o minificar tu JSON fuente
  • Procesamiento puramente local: todo el análisis y la conversión se ejecuta en el motor JavaScript del navegador; los datos de configuración sensibles nunca salen del dispositivo

Preguntas Frecuentes

¿Cómo convierto JSON en un archivo de configuración TOML?

Pega tu JSON en el área de entrada izquierda. La herramienta analiza automáticamente el objeto JSON y lo convierte en un archivo de configuración TOML v1.0. Los pares clave-valor se convierten en key = value, los objetos anidados en tablas TOML ([section]) o subtablas ([a.b]), y los arrays se dividen en arrays en línea o arrays de tablas ([[items]]) según sus tipos de elementos. Haz clic en el botón Muestra para cargar un ejemplo anidado y descarga el resultado como config.toml para usarlo directamente en tu proyecto.

¿Cuáles son las diferencias entre TOML, YAML y JSON?

JSON es el estándar de facto para APIs REST e intercambio de datos entre frontend y backend. YAML brilla en estructuras de datos complejas y configuraciones CI/CD (GitHub Actions, Ansible, Kubernetes) con gran legibilidad y soporte para comentarios y archivos multidocumento. TOML está diseñado para escenarios de configuración explícitos (Rust/Cargo, Python pyproject, Hugo, Prettier) con sintaxis concisa, sin ambigüedad y sin trampas de indentación. No hay una única mejor opción: TOML se recomienda para configuraciones, YAML para CI/CD y JSON para datos de API.

¿Cómo se representan los objetos JSON anidados en TOML?

TOML utiliza tablas para expresar estructuras anidadas. Un nivel de anidamiento, como {"database": {"host": "localhost"}}, se convierte en [database]\nhost = "localhost". Anidamientos más profundos, como {"server": {"ssl": {"enabled": true}}}, se convierten en [server.ssl]\nenabled = true. La herramienta detecta automáticamente la profundidad de anidamiento y genera los encabezados de tabla con puntos correspondientes, sin necesidad de ajuste manual.

¿Cómo se convierten los arrays JSON en TOML?

TOML admite dos sintaxis de arrays: ① arrays de tipos primitivos (como ["a", "b", 1, 2]) se convierten en arrays en línea key = ["a", "b", 1, 2], con valores separados por comas entre corchetes; ② arrays de objetos (como [{"name": "primary"}, {"name": "replica"}]) se convierten en arrays de tablas [[items]], donde cada objeto va precedido de un encabezado [[items]] con sus campos aplanados debajo. La herramienta detecta automáticamente el tipo de array y selecciona la sintaxis TOML adecuada.

¿Se puede usar el TOML generado directamente en Cargo.toml?

Sí. La herramienta sigue estrictamente la especificación oficial TOML v1.0 (github.com/toml-lang/toml), por lo que la salida se puede usar directamente en Cargo (gestor de paquetes Rust), Poetry/pyproject (gestor de paquetes Python), Hugo (sitios estáticos), Prettier, Deno, Taplo y cualquier otra cadena de herramientas compatible con TOML. Nota: si necesitas secciones específicas de Cargo como [package] o [dependencies], añade manualmente los campos requeridos (nombre, versión, edition, tablas de dependencias de crates, etc.) para que coincidan con el formato del manifiesto Cargo.

¿Qué pasa con los valores null de JSON en la salida TOML?

TOML no tiene tipo null, por lo que los valores null de JSON se convierten en una cadena vacía "", que es la representación equivalente más común. Si tu consumidor de TOML tiene requisitos especiales para campos null (como la marca optional en [dependencies]), ajusta manualmente la línea correspondiente después de la conversión.

¿Cómo se manejan las comillas dobles y saltos de línea en las cadenas?

Las cadenas TOML deben ir entre comillas dobles. Las comillas dobles internas, barras invertidas, saltos de línea (\n), retornos de carro (\r) y tabulaciones (\t) deben escaparse según la especificación TOML. La herramienta lo hace automáticamente: por ejemplo, He said "Hello" en JSON se convierte en He said \"Hello\" en TOML, y los saltos de línea en cadenas multilínea se convierten en \n. No se requiere escape manual, y la salida puede ser parseada correctamente por cualquier parser TOML.

¿El TOML generado admite tipos de fecha y hora?

Esta herramienta solo acepta JSON como entrada, y JSON no tiene un tipo nativo de fecha/hora (la convención común es usar cadenas ISO 8601 como "2026-01-01T00:00:00Z"). Tras la conversión, TOML conserva estos valores como cadenas (key = "2026-01-01T00:00:00Z"). Si necesitas los tipos nativos de fecha/hora de TOML, cambia manualmente la cadena a un literal de fecha TOML (como 2026-01-01T00:00:00).

¿La conversión local en el navegador sube mis datos de configuración?

No. Todo el análisis JSON, la generación de TOML y el escape de cadenas se ejecutan completamente en el motor JavaScript local del navegador, sin llamadas de red a ningún servidor. La herramienta sigue funcionando incluso sin conexión. Puedes convertir con seguridad JSON que contenga contraseñas de bases de datos, claves API, nombres de host internos y otra configuración sensible.

Solución de problemas

JSON muestra error "Unexpected token" — ¿cómo solucionarlo?

Es un error de sintaxis JSON. Causas comunes: ① comas finales, como {"a":1,}; ② comillas simples en lugar de dobles, como {'a':1} (JSON requiere comillas dobles); ③ claves sin comillas, como {a:1}; ④ comentarios con // o /* */ (no admitidos por el estándar JSON). Usa la herramienta Reparar JSON de este sitio para corregir automáticamente estos errores comunes y luego pega el JSON reparado en esta herramienta para convertir.

Cargo reporta "invalid TOML" tras la conversión — ¿qué hacer?

Normalmente es un conflicto de nombres de campo o un campo obligatorio faltante. El parser TOML es estricto con las rutas de encabezado de tabla, claves duplicadas y el escape de caracteres. Comprueba: ① si hay claves duplicadas dentro del mismo ámbito; ② si los caracteres especiales dentro de las cadenas están correctamente escapados (comillas dobles, barras invertidas, saltos de línea); ③ si la profundidad de anidamiento es excesiva (TOML 1.0 recomienda no más de 5 niveles); ④ si faltan secciones obligatorias de Cargo como [package]. La salida de la herramienta es 100 % sintácticamente válida, así que el problema suele estar en el consumidor (por ejemplo, si los nombres de campo cumplen las reglas del manifiesto Cargo).

El array de objetos se convirtió en array en línea en lugar de array de tablas?

Un array JSON solo se convierte en array en línea como ["a","b"] cuando cada elemento es un tipo primitivo (cadena/número/booleano/null). Un array de objetos (como [{"name":"x"}]) se convierte en array de tablas [[items]]. Si tu array de objetos se reconoció erróneamente como array en línea, significa que el array contiene elementos que no son objetos. Comprueba los datos: ① si el array contiene cadenas o números mezclados; ② si se rompió el nivel de anidamiento.

Algunas claves están entre comillas tras la conversión — ¿cómo eliminarlas?

TOML solo permite letras, dígitos, guiones bajos y guiones en las claves sin comillas ([A-Za-z0-9_-]). Si una clave JSON contiene caracteres especiales (espacios, puntos, chino, emoji, palabras reservadas), la herramienta automáticamente la envuelve en comillas dobles para mantener el TOML válido, por ejemplo {"my key": 1} se convierte en "my key" = 1. Si tu herramienta downstream no acepta claves entre comillas, cambia el nombre de las claves JSON a caracteres legales (A-Z a-z 0-9 _ -) antes de la conversión.

El navegador se atasca al convertir archivos grandes — ¿qué hacer?

La herramienta está optimizada para conversión en tiempo real, pero los archivos muy grandes (>1 MB, cientos de miles de líneas) aún pueden causar presión. Recomendaciones: ① usa primero la herramienta Formateador JSON para comprobar que el JSON sea válido; ② convierte por lotes (por ejemplo, divide por claves de nivel superior); ③ asegúrate de que tu navegador tenga suficiente memoria; ④ para archivos de configuración muy grandes (10 MB+), considera usar una herramienta de línea de comandos como taplo o tomlq. Esta herramienta está orientada a escenarios de configuración cotidianos (KB a unos pocos cientos de KB).

Glosario

TOML
Tom's Obvious, Minimal Language: un lenguaje de formato orientado a configuración con sintaxis concisa y sin ambigüedad, el formato de configuración predeterminado para Rust Cargo, Python pyproject y Hugo.
Tabla
En TOML, un grupo con nombre declarado con [name], equivalente a un objeto JSON, que admite anidamiento con puntos como [server.ssl].
Array de Tablas
En TOML, una lista de objetos homogéneos declarada con [[name]]; cada segmento [[name]] contiene los campos de un objeto, equivalente a un array JSON de objetos.
Tabla en línea
Sintaxis admitida por TOML 1.0 que declara objetos simples en una sola línea usando { key = value, key = value }, adecuada para objetos planos sin nombre.
Cargo.toml
El archivo de configuración estándar para proyectos Rust, que define metadatos del paquete, dependencias, dev-dependencias, features y más, en formato TOML.
pyproject.toml
El archivo de configuración estándar para proyectos Python (PEP 621), que define build-system, metadatos del proyecto, dependencias y configuraciones de herramientas (black, pytest, mypy, etc.).
TOML v1.0
La versión estable de TOML publicada oficialmente en 2021, que esta herramienta sigue estrictamente (github.com/toml-lang/toml/blob/main/toml.md).
Objeto JSON anidado
Un objeto JSON que contiene otros objetos, correspondiente a una Tabla TOML ([section]) o subtabla ([a.b.c]).
Escape TOML
Los caracteres especiales dentro de las cadenas TOML (comillas dobles, barras invertidas, saltos de línea, etc.) deben escaparse con barras invertidas (\" \\ \n); la herramienta lo maneja automáticamente.
Archivo de configuración
Un archivo de configuración que una aplicación lee al iniciarse, separado del código para facilitar su modificación. TOML es uno de los estándares de facto para archivos de configuración.

Mapeo de tipos JSON a TOML

Esta herramienta asigna tipos JSON a tipos TOML con las siguientes reglas:

Tipo JSONTipo TOMLSintaxis TOMLNotas
stringstringkey = "value"Las cadenas TOML deben usar comillas dobles
integerintegerkey = 8080Los integers no tienen punto decimal
floatfloatkey = 3.14Los floats deben tener punto decimal
booleanbooleankey = trueTOML solo usa minúsculas true / false
nullstring (vacío)key = ""TOML no tiene null; se convierte en cadena vacía
array[primitive]arraykey = ["a", "b"]Los arrays primitivos usan corchetes en línea
array[object]array of tables[[items]]\nkey = valueLos arrays de objetos usan tablas [[name]]
objecttable[name]\nkey = valueLos objetos usan encabezados de tabla [name]

Referencia de escape de cadenas TOML

Caracteres especiales que deben escaparse dentro de cadenas TOML:

OriginalEscape TOMLNombreEjemplo de uso
"\"Comilla dobleComillas dobles anidadas dentro de cadenas
\\\Barra invertidaRutas Windows como C:\Users
salto de línea\nNewlineComprimir cadenas multilínea
tab\tTabulaciónValores separados por tabulaciones
retorno\rRetorno de carroSaltos de línea CRLF de Windows
\b\bBackspaceCarácter de retroceso
\f\fAvance de páginaCarácter de salto de página
U+0000\u0000Unicode 0Los caracteres de control deben usar escape \u

Ejemplos de conversión JSON a TOML

Entradas JSON complejas y sus salidas TOML:

EstructuraEjemplo
Entrada JSON{ "name": "app", "port": 8080 }
Salida TOMLname = "app" port = 8080
Entrada JSON{ "server": { "host": "0.0.0.0", "port": 443 } }
Salida TOML[server] host = "0.0.0.0" port = 443
Entrada JSON{ "hosts": [{"ip":"10.0.0.1"},{"ip":"10.0.0.2"}] }
Salida TOML[[hosts]] ip = "10.0.0.1" [[hosts]] ip = "10.0.0.2"

Privacy & Security

Esta herramienta ejecuta todo el análisis JSON, generación de TOML, escape de cadenas y lectura de archivos en el motor JavaScript local del navegador. El contenido JSON y la configuración TOML generada nunca se envían a través de la red a ningún servidor, y nunca se registran ni analizan. Se puede convertir con seguridad JSON que contenga contraseñas de bases de datos, claves API, nombres de host internos y otra configuración sensible. El historial local se almacena solo en el localStorage de tu propio navegador y se puede eliminar cerrando el navegador o limpiando la caché.

Authoritative References