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.
Opciones · 2 espacios
¿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
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
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
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.
name = my-app
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.
name = "a" name = "b"
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.
released = 2026-7-2
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.
ports = [8001, 8002
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.
snowflake = 1420070400000000000
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.
[servers] name = "a" [servers] name = "b"
[[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?
¿Qué es TOML y por qué convertirlo a JSON?
¿Cómo se representan las fechas y horas de TOML en JSON?
¿Esta herramienta gestiona Cargo.toml y pyproject.toml?
¿Cómo se convierten las tablas y los arrays de tablas de TOML?
¿Qué ocurre con los enteros muy grandes al convertir TOML a JSON?
¿Se envían mis datos TOML a algún servidor?
¿Puedo convertir JSON de nuevo a TOML?
¿Cómo convierto TOML a JSON en la línea de comandos?
¿Cómo convierto TOML a JSON en Python, Rust o Node.js?
¿El convertidor conserva el orden de las claves y qué pasa con los comentarios?
¿Hay un límite de tamaño para la entrada TOML?
Herramientas relacionadas
Ver todas las herramientas →Decodificador y Codificador Base64
Codificación y Formato
Decodifica y codifica Base64 online de forma gratuita. Conversión en tiempo real con soporte completo de UTF-8 y emojis. 100% privado — funciona en tu navegador. Sin registro.
Conversor de Base64 a Imagen
Codificación y Formato
Decodifica una cadena Base64 o data URI de vuelta a una imagen en tu navegador. Previsualiza, lee dimensiones y MIME, luego descarga como PNG, JPG, GIF, SVG. Sin subir.
Convertidor de CSV a JSON
Codificación y Formato
Convierte CSV a JSON en tu navegador. RFC 4180, inferencia de tipos, fila de cabecera, seguro para big-int. 100% privado, sin carga.
Conversor de .env a JSON
Codificación y Formato
Pega un archivo .env y obtén JSON al instante. Tus contraseñas, claves API y tokens nunca salen del navegador: 100% privado, sin subidas, gratis.
Decodificador de entidades HTML gratuito — Desescapar HTML
Codificación y Formato
Decodifica entidades HTML y desescapa HTML online: gratis, sin registro, 100 % en tu navegador. Convierte referencias nombradas, decimales y hex de vuelta en caracteres; nunca se sube.
Codificador de entidades HTML gratuito — Escapar HTML
Codificación y Formato
Codifica entidades HTML y escapa caracteres especiales (< > & " ') online: gratis, sin registro, 100 % en tu navegador. Salida con nombre, decimal o hex; nunca se sube.