Skip to content

Convertidor de TOML a JSON

Pega TOML y obtén JSON al instante en tu navegador. Listo para Cargo.toml y pyproject.toml. Fechas y tablas anidadas correctas. 100% privado, sin subir nada.

Sin rastreo Se ejecuta en el navegador Gratis
Opciones · 2 espacios
Indentación
0 caracteres
JSON Salida
0 líneas
Revisado para la conformidad con la especificación TOML 1.0.0, la fidelidad de fecha y hora y el manejo seguro de enteros grandes — Equipo de Ingeniería de Go Tools · Jul 2, 2026

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

TOML (Tom's Obvious, Minimal Language) es un formato de archivo de configuración creado por Tom Preston-Werner para ser inequívoco, fácil de leer para las personas y trivialmente asignable a una tabla hash. Se ha convertido en el formato de configuración por defecto del ecosistema de Rust (Cargo.toml), del empaquetado moderno de Python (pyproject.toml, estandarizado en PEP 518 y PEP 621) y de herramientas como Hugo, Netlify, Poetry y Foundry. JSON, en cambio, es el formato universal de intercambio entre máquinas: todos los lenguajes lo analizan y todas las API lo hablan. Convertir TOML a JSON es, por tanto, una tarea habitual: escribes la configuración en TOML legible y luego la conviertes a JSON para alimentar un programa, inspeccionarla con herramientas JSON o compararla en una tubería.

Esta herramienta tiene varios diferenciadores que importan para la corrección:

**1. Fidelidad de fecha y hora.** TOML tiene tipos de fecha y hora de primera clase —fecha-hora con desfase, fecha-hora local, fecha local y hora local— que JSON no tiene en absoluto. Los convertidores ingenuos los aplanan todos en marcas de tiempo ISO, de modo que una fecha local como 1979-05-27 se convierte en 1979-05-27T00:00:00Z, inventando silenciosamente una hora y una zona horaria. Esta herramienta conserva el tipo exacto de TOML: las fechas locales permanecen como fechas de calendario, las horas locales permanecen como horas y solo las fechas-hora con desfase llevan una zona horaria. Eso mantiene tus datos honestos y las conversiones de ida y vuelta sin pérdidas.

**2. Compatibilidad total con TOML 1.0.0.** Las tablas anidadas, las claves con puntos, las tablas en línea y los arrays de tablas ([[section]]) se analizan todos correctamente conforme a la especificación TOML 1.0.0 usando la biblioteca smol-toml sin dependencias. Los archivos Cargo.toml y pyproject.toml reales con una mezcla de tablas en línea y estándar se convierten exactamente como exige la especificación.

**3. Manejo honesto de enteros grandes.** Los enteros de TOML son de 64 bits, pero JavaScript en el navegador solo puede contener exactamente enteros hasta 2^53 - 1. En lugar de corromper silenciosamente un valor grande o fallar, esta herramienta convierte al número JSON más cercano y te avisa, para que puedas optar por guardar el valor como cadena. Esta honestidad sobre una limitación fundamental del navegador es algo que la mayoría de convertidores pasan por alto.

**4. Privacidad 100% en el navegador.** Tu TOML —que puede contener tokens de registro, fuentes de paquetes internas o secretos de despliegue— nunca sale de tu navegador. Sin subidas, sin servidor, sin registros. Puedes confirmarlo en la pestaña de Red de tu navegador.

¿Necesitas la dirección inversa? Usa el Convertidor de JSON a TOML. ¿Conviertes entre otros formatos de configuración? Prueba el Convertidor de JSON a YAML y el Convertidor de YAML a JSON, o valida y formatea primero tu salida JSON con el Formateador de JSON. TOML, JSON y YAML tienen cada uno su lugar: TOML para la configuración de aplicaciones editada por personas, JSON para el intercambio entre máquinas y YAML para manifiestos de infraestructura profundamente anidados. Este convertidor te permite moverte entre los dos primeros sin escribir una sola línea de código.

// Convert TOML to JSON in Node.js using the smol-toml library
import { parse } from 'smol-toml';

const toml = `
[package]
name = "my-app"
version = "1.0.0"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
`;

const data = parse(toml);
const json = JSON.stringify(data, null, 2);

console.log(json);
// {
//   "package": { "name": "my-app", "version": "1.0.0" },
//   "dependencies": {
//     "serde": { "version": "1.0", "features": ["derive"] }
//   }
// }

Características clave

Conversión en vivo

La salida JSON se actualiza al instante a medida que escribes o pegas TOML, sin necesidad de un botón Convertir. Las entradas grandes (>200 KB) cambian automáticamente al modo manual para mantener el navegador con buena respuesta.

Fidelidad de fecha y hora

Las fechas-hora con desfase, las fechas-hora locales, las fechas locales y las horas locales de TOML se convierten en cadenas JSON que conservan el tipo original, sin marcas de tiempo de medianoche inventadas, de modo que las conversiones de ida y vuelta no pierden información.

Compatibilidad total con TOML 1.0.0

Las tablas anidadas, las claves con puntos, las tablas en línea y los arrays de tablas ([[section]]) se analizan todos correctamente mediante el motor smol-toml sin dependencias, conforme a la especificación TOML 1.0.0.

Listo para Cargo.toml y pyproject.toml

Optimizado para los archivos TOML más comunes del mundo real —manifiestos de Rust y configuraciones de empaquetado de Python— incluyendo tablas en línea y arrays de tablas. Carga un ejemplo para ver la estructura JSON exacta.

Advertencias honestas de enteros grandes

Los enteros que superan el rango seguro de JavaScript (2^53) no pueden representarse exactamente en JSON: la herramienta los convierte al número más cercano y te avisa, en lugar de corromper el valor en silencio.

Privacidad 100% en el navegador

Todo el análisis se ejecuta localmente en tu navegador. Tu TOML —incluidos tokens de registro, fuentes de paquetes privadas y secretos de despliegue— nunca se sube, almacena ni registra.

Ejemplos

Cargo.toml (Rust)

[package]
name = "my-app"
version = "1.0.0"
edition = "2021"
authors = ["Jane Doe <jane@example.com>"]

[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }

[dev-dependencies]
criterion = "0.5"

[[bin]]
name = "my-app"
path = "src/main.rs"

Convierte un manifiesto Cargo.toml de Rust a JSON: útil para herramientas, paneles de dependencias o para alimentar los metadatos de cargo a scripts que esperan JSON.

pyproject.toml (Python)

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "my-package"
version = "0.3.1"
requires-python = ">=3.10"
dependencies = [
  "requests>=2.31",
  "pydantic>=2.0"
]

[project.optional-dependencies]
dev = ["pytest>=8.0", "ruff>=0.4"]

[tool.ruff]
line-length = 100

Convierte un pyproject.toml conforme a PEP 621 a JSON para inspeccionar los metadatos del proyecto, las dependencias y la configuración de herramientas de forma programática.

netlify.toml

[build]
command = "npm run build"
publish = "dist"

[build.environment]
NODE_VERSION = "20"

[[redirects]]
from = "/old-path"
to = "/new-path"
status = 301
force = true

[[headers]]
for = "/*"

[headers.values]
X-Frame-Options = "DENY"

Convierte una configuración de compilación de Netlify a JSON para auditar redirecciones y cabeceras o generar la configuración equivalente para otra plataforma.

config.toml de Hugo

baseURL = "https://example.org"
languageCode = "en-us"
title = "My Hugo Site"
theme = "ananke"

[params]
description = "A static site built with Hugo"
mainSections = ["posts", "docs"]

[[menu.main]]
name = "Blog"
url = "/posts/"
weight = 1

[[menu.main]]
name = "About"
url = "/about/"
weight = 2

Convierte el config.toml de un sitio Hugo a JSON para migrar ajustes, comparar configuraciones o alimentar una interfaz de configuración.

rustfmt.toml

edition = "2021"
max_width = 100
hard_tabs = false
tab_spaces = 4
newline_style = "Unix"
use_small_heuristics = "Default"
reorder_imports = true
reorder_modules = true

Convierte un rustfmt.toml plano a JSON: un buen ejemplo de cómo los pares clave-valor de nivel superior (sin tablas) se asignan directamente a un objeto JSON.

Configuración de app con fechas y arrays de tablas

title = "Deployment Log"
last_deployed = 1979-05-27T07:32:00Z
release_date = 1979-05-27
maintenance_window = 02:00:00

[[servers]]
name = "alpha"
ip = "10.0.0.1"
ports = [8001, 8002]

[[servers]]
name = "beta"
ip = "10.0.0.2"
ports = [9001]

Muestra cómo las fechas y horas nativas de TOML (fecha-hora con desfase, fecha local, hora local) y los arrays de tablas se convierten limpiamente en cadenas y arrays JSON.

Cómo usarlo

  1. 1

    Pega tu TOML

    Introduce o pega tu TOML en el campo de entrada de arriba. También puedes pulsar 'Cargar ejemplo' para probar un Cargo.toml, un pyproject.toml o una configuración de despliegue reales.

  2. 2

    Observa la salida JSON en vivo

    El JSON aparece al instante en el panel de salida. Ajusta la opción de Indentación (2 o 4 espacios) para que coincida con tu formato de destino. Las fechas, las tablas y los arrays de tablas se gestionan automáticamente.

  3. 3

    Copia o descarga

    Pulsa Copiar para llevar el JSON al portapapeles o Descargar para guardarlo como archivo .json, listo para tu programa, API o herramientas.

Errores comunes de TOML

Valores de cadena sin comillas

En TOML, los valores de cadena deben ir entre comillas. Una palabra suelta a la derecha del signo igual solo es válida para booleanos (true/false), números, fechas o como parte de un array. Pon tus cadenas entre comillas dobles o simples.

✗ Incorrecto
name = my-app
✓ Correcto
name = "my-app"

Claves duplicadas

TOML prohíbe definir la misma clave dos veces dentro de la misma tabla y prohíbe redefinir una tabla ya definida. Este es un error común al fusionar fragmentos de configuración. Cada clave y tabla debe ser única.

✗ Incorrecto
name = "a"
name = "b"
✓ Correcto
name = "a"
alt_name = "b"

Formato de fecha y hora no válido

Las fechas y horas de TOML siguen el RFC 3339. Una fecha necesita un año completo de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos; una fecha-hora necesita un separador T (o un espacio). Las fechas mal formadas no se analizan.

✗ Incorrecto
released = 2026-7-2
✓ Correcto
released = 2026-07-02

Falta el corchete de cierre

Los arrays, las tablas en línea y las cabeceras de tabla deben cerrarse. Un [ o { sin cerrar produce un error de análisis que apunta a la línea y la columna donde se detectó el problema.

✗ Incorrecto
ports = [8001, 8002
✓ Correcto
ports = [8001, 8002]

Entero fuera del rango seguro

Los enteros de TOML son de 64 bits, pero los números JSON en el navegador están limitados a 2^53 - 1. Los valores que superan ese límite se redondean durante la conversión y se muestra una advertencia. Guarda los enteros muy grandes como cadenas entre comillas para conservarlos con exactitud.

✗ Incorrecto
snowflake = 1420070400000000000
✓ Correcto
snowflake = "1420070400000000000"

Redefinir una tabla

Una vez definida una tabla como [servers], no puedes volver a abrirla con la misma cabecera. Para tener varias entradas, usa un array de tablas ([[servers]]) en su lugar, que se convierte en un array JSON de objetos.

✗ Incorrecto
[servers]
name = "a"
[servers]
name = "b"
✓ Correcto
[[servers]]
name = "a"
[[servers]]
name = "b"

Casos de uso comunes

Metadatos de Cargo en Rust
Convierte Cargo.toml a JSON para crear paneles de dependencias, auditar versiones y características de los crates o alimentar los datos del manifiesto a scripts y CI que esperan JSON en lugar de TOML.
Configuración de proyecto Python
Convierte pyproject.toml a JSON para inspeccionar los metadatos de proyecto de PEP 621, extraer listas de dependencias o alimentar herramientas que leen la configuración de empaquetado de forma programática.
Inspección de configuración de despliegue
Convierte netlify.toml, foundry.toml u otras configuraciones de plataforma a JSON para auditar redirecciones, cabeceras y ajustes de compilación, o para generar una configuración equivalente para otra plataforma.
Migración de formato de configuración
Convierte la configuración de aplicación en TOML a JSON al pasar a un sistema que prefiere JSON, o como paso intermedio antes de transformarla más con herramientas JSON como jq.
Ajustes de sitios estáticos
Convierte el config.toml de Hugo a JSON para migrar los ajustes del sitio, comparar la configuración entre entornos o crear una interfaz de ajustes respaldada por JSON.
Entrada para API y scripts
Convierte TOML escrito por personas en JSON que una API REST, una función sin servidor o un script de automatización puedan consumir directamente, tendiendo un puente entre la configuración legible y la entrada de máquina.

Detalles técnicos

Análisis de TOML 1.0.0 con smol-toml
TOML se analiza con la biblioteca smol-toml, un analizador sin dependencias y totalmente conforme a TOML 1.0.0. Gestiona correctamente las tablas anidadas, las claves con puntos, las tablas en línea, los arrays de tablas, las cadenas multilínea y los cuatro tipos de fecha y hora, y comunica los errores de análisis con la línea y la columna.
Fecha-hora sin pérdidas y manejo seguro de enteros
Las fechas y horas de TOML se serializan en cadenas JSON que conservan su tipo exacto (fecha-hora con desfase, fecha-hora local, fecha local, hora local). Los enteros que superan el rango seguro de JavaScript (2^53 - 1) se promueven a BigInt durante el análisis y luego se convierten al número JSON más cercano con una advertencia de precisión, de modo que un TOML válido nunca deja de convertirse.
100% en el navegador: sin subidas, sin servidor
Todo el procesamiento ocurre en el motor JavaScript de tu navegador. En ningún momento se transmiten datos. Las entradas mayores de 200 KB pasan del modo en vivo al modo manual (una pulsación explícita en Convertir) para mantener la interfaz con buena respuesta.

Buenas prácticas

Guarda los enteros muy grandes como cadenas
Si tu TOML tiene enteros que superan 2^53 - 1 (IDs de Snowflake, marcas de tiempo en nanosegundos, contadores grandes), ponlos entre comillas como cadenas antes de convertir. Los números JSON en el navegador no pueden contenerlos exactamente, y la herramienta te avisará cuando tenga que redondear.
Prefiere la indentación de 2 espacios para la salida JSON
La indentación de dos espacios es la convención más usada para JSON y produce una salida limpia y legible que funciona bien con la mayoría de formateadores y herramientas de comparación. Reserva la indentación de 4 espacios para cuando una guía de estilo lo exija.
Valida la salida JSON antes de usarla
Después de convertir, si piensas editar el JSON a mano o alimentarlo a algo estricto, pásalo por nuestro Formateador de JSON para confirmar que es válido y que tiene un formato coherente.
Guarda los comentarios de TOML por separado
JSON no tiene sintaxis de comentarios, así que los comentarios # de TOML se descartan al convertir. Si los comentarios son documentación importante, mantén el TOML original en el control de versiones junto al JSON generado.
Usa arrays de tablas para secciones repetidas
Cuando tengas varias secciones similares (servidores, redirecciones, bins), escríbelas como arrays de tablas ([[section]]) en lugar de repetir [section]. Se convierten en un array JSON de objetos limpio en vez de provocar un error de tabla duplicada.

Preguntas frecuentes

¿Cómo convierto TOML a JSON en línea?
Pega tu TOML en el campo de entrada de arriba. La herramienta lo analiza y produce JSON al instante en tu navegador, sin necesidad de pulsar ningún botón. Puedes cambiar la indentación del JSON entre 2 y 4 espacios en el panel de Opciones. Cuando el JSON aparezca en el área de salida, pulsa Copiar para llevarlo al portapapeles o Descargar para guardarlo como archivo .json. Todo se ejecuta localmente, así que tu TOML nunca sale de tu dispositivo.
¿Qué es TOML y por qué convertirlo a JSON?
TOML (Tom's Obvious, Minimal Language) es un formato de archivo de configuración diseñado para que las personas lo lean y escriban con facilidad, con una semántica clara que se asigna de forma inequívoca a una tabla hash. Impulsa el Cargo.toml de Rust, el pyproject.toml de Python, Hugo, Netlify y muchas otras herramientas. Conviertes TOML a JSON cuando necesitas alimentar la configuración a un programa o API que espera JSON, inspeccionar un archivo de configuración de forma programática, comparar dos configuraciones con herramientas JSON o alimentar una interfaz. TOML lo escriben las personas; JSON lo consumen las máquinas: este convertidor tiende el puente entre ambos.
¿Cómo se representan las fechas y horas de TOML en JSON?
JSON no tiene un tipo de fecha nativo, así que las fechas y horas de TOML se convierten en cadenas. Esta herramienta conserva el tipo exacto de fecha de TOML: una fecha-hora con desfase como 1979-05-27T07:32:00Z se convierte en "1979-05-27T07:32:00.000Z", una fecha local como 1979-05-27 permanece como "1979-05-27" (no se rellena hasta formar una marca de tiempo completa) y una hora local como 07:32:00 se convierte en "07:32:00.000". Muchos convertidores aplanan incorrectamente las fechas locales en marcas de tiempo UTC de medianoche; este mantiene el significado original para que las conversiones de ida y vuelta no pierdan información.
¿Esta herramienta gestiona Cargo.toml y pyproject.toml?
Sí. Cargo.toml y pyproject.toml son los dos archivos TOML más comunes del mundo real, y ambos son totalmente compatibles, incluyendo tablas anidadas ([dependencies], [tool.ruff]), tablas en línea (serde = { version = "1.0", features = ["derive"] }) y arrays de tablas ([[bin]]). Carga el ejemplo de Cargo.toml o pyproject.toml de arriba para ver la estructura JSON exacta que se produce. Esto resulta útil para paneles de compilación, auditorías de dependencias o cualquier script que lea los metadatos del proyecto como JSON.
¿Cómo se convierten las tablas y los arrays de tablas de TOML?
Una cabecera de tabla de TOML como [owner] se convierte en un objeto JSON anidado bajo la clave "owner". Una tabla con puntos como [tool.ruff] se convierte en objetos anidados: { "tool": { "ruff": { ... } } }. Un array de tablas escrito con dobles corchetes ([[servers]] repetido) se convierte en un array JSON de objetos: { "servers": [ { ... }, { ... } ] }. Las tablas en línea ({ a = 1, b = 2 }) se convierten en objetos JSON simples. La conversión sigue exactamente la especificación TOML 1.0.0.
¿Qué ocurre con los enteros muy grandes al convertir TOML a JSON?
TOML admite enteros con signo de 64 bits, pero JavaScript (y por tanto JSON en el navegador) solo puede representar exactamente enteros hasta 2^53 - 1 (9007199254740991). Si tu TOML contiene un entero mayor que ese, por ejemplo un ID de Snowflake o una marca de tiempo en nanosegundos, no puede representarse sin pérdida como número JSON, y el valor se redondea mostrando una advertencia. Esta es una limitación fundamental de JavaScript en el navegador que afecta a todos los convertidores basados en navegador. Para conservarlos con exactitud, mantén esos valores como cadenas entre comillas en tu TOML.
¿Se envían mis datos TOML a algún servidor?
No. Todo el análisis y la conversión ocurren por completo en tu navegador mediante JavaScript. Tu TOML nunca se sube, nunca se almacena y nunca se registra. Esto hace que la herramienta sea segura para archivos Cargo.toml con tokens de registro privados, pyproject.toml con índices de paquetes internos, configuraciones de despliegue con secretos y cualquier otra configuración sensible. Puedes verificarlo abriendo la pestaña de Red de tu navegador: pegar TOML no genera ninguna petición de red.
¿Puedo convertir JSON de nuevo a TOML?
Sí. Usa el Convertidor de JSON a TOML complementario para la dirección inversa, o pulsa el botón Invertir dirección en la parte superior de esta herramienta para intercambiar la entrada y la salida en el mismo sitio. Ten en cuenta que la conversión de JSON a TOML tiene algunas restricciones que la de TOML a JSON no tiene: el nivel superior debe ser un objeto y los valores null no tienen equivalente en TOML, algo que la herramienta de JSON a TOML explica y gestiona por ti.
¿Cómo convierto TOML a JSON en la línea de comandos?
Una opción popular es la CLI 'toml' basada en Rust o la herramienta Go 'yj' (yj -tj lee TOML y escribe JSON). Con Python 3.11+ puedes ejecutar: python3 -c "import tomllib, json, sys; print(json.dumps(tomllib.load(sys.stdin.buffer)))" < config.toml. Con Node.js: npx smol-toml (o un pequeño script que use la biblioteca smol-toml). Para algo rápido y puntual en el navegador sin instalar nada, esta herramienta es el camino más veloz.
¿Cómo convierto TOML a JSON en Python, Rust o Node.js?
En Python 3.11+: import tomllib, json; data = tomllib.load(open('config.toml','rb')); json.dump(data, open('config.json','w')). En Rust: usa los crates toml y serde_json — let value: toml::Value = toml::from_str(&text)?; let json = serde_json::to_string_pretty(&value)?. En Node.js: import { parse } from 'smol-toml'; const data = parse(text); const json = JSON.stringify(data, null, 2) — esta es la misma biblioteca y el mismo enfoque que utiliza esta herramienta.
¿El convertidor conserva el orden de las claves y qué pasa con los comentarios?
El orden de las claves dentro de una tabla se conserva: las claves aparecen en la salida JSON en el mismo orden en que aparecen en tu TOML. Los comentarios, sin embargo, se descartan: JSON no tiene sintaxis de comentarios, así que los comentarios # de TOML no pueden sobrevivir a la conversión. Si necesitas conservar la documentación, añádela como un campo compatible con JSON o mantén el TOML original junto al JSON generado.
¿Hay un límite de tamaño para la entrada TOML?
No hay un límite estricto, pero las entradas de más de 200 KB pasan de la conversión en vivo al modo manual: aparece un botón Convertir y la conversión solo se ejecuta al pulsarlo, manteniendo el navegador con buena respuesta. Los archivos de configuración típicos —incluso grandes espacios de trabajo Cargo.toml o configuraciones de despliegue multientorno— se convierten en bastante menos de 50 milisegundos.

Herramientas relacionadas

Ver todas las herramientas →