TOML a JSON
El Cargo.toml de Rust, el pyproject.toml de Python, el config.toml de Hugo: TOML está por todas partes en la configuración moderna, pero muchas herramientas siguen hablando solo JSON. Pega aquí tu TOML y obtén JSON con formato legible: las secciones [tabla] se convierten en objetos anidados, los bloques [[array de tablas]] en arrays de objetos, y las fechas pasan tal cual como cadenas. El parser cubre el núcleo cotidiano de TOML; sus límites reales (valores multilínea, tablas inline, claves con puntos) se detallan abiertamente más abajo.
Cómo funciona la conversión
-
1
Pega tu TOML
Escribe o pega el texto en el cuadro de entrada y pulsa Convertir a JSON. Los comentarios # de línea completa se omiten automáticamente.
-
2
Las tablas se vuelven objetos
Una cabecera `[server.database]` se convierte en objetos JSON anidados, un nivel por cada nombre con punto.
-
3
Los arrays de tablas se vuelven arrays
Los bloques `[[users]]` generan un array JSON con un objeto por bloque.
-
4
Los valores escalares conservan su tipo
Las cadenas entrecomilladas, los enteros y decimales en notación simple y true/false se asignan a tipos JSON nativos; las fechas quedan como cadenas, exactamente como se escribieron.
-
5
Copia el JSON
El resultado sale con formato legible y sangría de 4 espacios, con las claves en su orden original, listo para copiar.
Cómo se asignan los tipos
| Valor TOML | Valor JSON | Ejemplo |
|---|---|---|
| Cadena (básica o literal) | Cadena | "hello" → "hello" |
| Entero (decimal simple) | Número | 42 → 42 |
| Decimal (notación simple) | Número | 3.14 → 3.14 |
| Booleano | Booleano | true → true |
| Array (en una línea) | Array | [1, 2, 3] → [1, 2, 3] |
| Tabla con claves | Objeto | [server] + port = 8080 → "server": {"port": 8080} |
| Array de tablas | Array de objetos | [[users]] + name = "alice" → "users": [{"name": "alice"}] |
| Fecha y hora | Cadena, tal cual | 2026-04-18T10:00:00Z → "2026-04-18T10:00:00Z" |
La salida siempre se imprime con sangría de 4 espacios, así que los arrays y objetos ocupan varias líneas; la tabla anterior muestra los valores en línea para facilitar la lectura. El orden de las claves se conserva exactamente como aparece en tu TOML.
Ejemplo completo
title = "My App"
[server]
host = "localhost"
port = 8080
[[users]]
name = "alice"
admin = true
se convierte en:
{
"title": "My App",
"server": {
"host": "localhost",
"port": 8080
},
"users": [
{
"name": "alice",
"admin": true
}
]
}
TOML admitido y límites reales
Se admite: cabeceras [tabla] incluidos los nombres de sección con puntos, [[arrays de tablas]], pares clave = valor en una línea, cadenas básicas "..." con escapes \n, \t y \", cadenas literales '...', enteros y decimales en notación simple, true/false, arrays de una línea (con anidación), comentarios # de línea completa y fechas que pasan como cadenas.
No se admite, y qué hacer en su lugar:
- Las cadenas multilínea (
"""o''') y los arrays multilínea detienen el parser con un error. Pon antes el valor en una sola línea. - Las tablas inline no se expanden:
point = { x = 1, y = 2 }sale como la cadena"{ x = 1, y = 2 }", no como objeto. Reescríbela como su propia sección[point]. Las líneas de dependencias de Cargo.toml, comoserde = { version = "1.0" }, son el caso clásico. - Las claves con puntos a la izquierda del igual quedan como una clave plana:
server.host = "a"produce la clave"server.host", sin anidar. Usa una cabecera[server]en su lugar. Los[nombres.de.seccion]con puntos en cabeceras sí anidan correctamente. - Los comentarios en la misma línea no se eliminan:
port = 8080 # mainse convierte en la cadena"8080 # main". Mantén los comentarios en líneas propias. - Los formatos numéricos más allá del decimal simple no se reconocen:
1_000,0xFF,5e2,+99,infynansalen como cadenas entrecomilladas. Escribe1000,255,500,99. - Los escapes
\uXXXXen cadenas básicas no se decodifican. Pega el carácter real en su lugar.
Para un documento TOML 1.0 completo, usa un conversor de línea de comandos como toml2json, o carga el archivo con tomllib de Python y vuelca JSON desde ahí.
Dónde resulta útil
- Inspección rápida de un fragmento TOML como JSON mientras depuras.
- Pasar valores de configuración sencillos a linters, scripts o herramientas de inventario que solo aceptan JSON.
- Generar fixtures JSON para tests a partir de notas TOML más cómodas de escribir a mano.
- Migrar archivos de configuración pequeños y planos, como son muchos
config.tomlde Hugo.
Notas sobre la ida y vuelta
- Los comentarios nunca sobreviven: JSON no tiene sintaxis de comentarios.
- Las fechas siguen siendo cadenas; el código posterior tiene que volver a convertirlas en objetos de fecha.
- Números grandes: los enteros se conservan como valores de 64 bits en el texto JSON, pero los consumidores JavaScript pierden precisión por encima de 2^53. Cuidado con timestamps en nanosegundos e IDs numéricos.
- El orden de las claves se mantiene tal como está escrito en este conversor; otras herramientas JSON pueden reordenarlas al reemitir el documento.
Sentido inverso
JSON → TOML es el viaje difícil, porque JSON tiene estructuras (anidación anónima profunda, null) que TOML no tiene o trata de otra forma. La mayoría de los escenarios de ida y vuelta requieren ajustes manuales en el lado TOML.
Preguntas frecuentes
No. JSON no tiene sintaxis de comentarios, así que los comentarios # de línea completa simplemente se omiten. Una advertencia: un comentario en la misma línea que un valor no se elimina, de modo que port = 8080 # main se convierte en la cadena “8080 # main”. Deja los comentarios en líneas propias antes de convertir.
No. Cubre el núcleo cotidiano: tablas con nombres de sección con puntos, arrays de tablas, pares clave = valor en una línea, cadenas entrecomilladas, números decimales simples, booleanos, arrays de una línea y comentarios de línea completa. No admite cadenas ni arrays multilínea, tablas inline, claves con puntos ni formatos numéricos como 1_000 o 0xFF. Para documentos con la especificación completa usa una herramienta de línea de comandos como toml2json o el tomllib de Python.
Los archivos de configuración habituales se convierten al instante. La conversión se ejecuta en nuestro servidor, así que los documentos enormes quedan limitados por el tamaño de la petición; para TOML de varios megabytes encaja mejor un conversor de línea de comandos.
Sí, este conversor funciona en el servidor: el TOML viaja a nuestro servidor por HTTPS, se convierte allí y vuelve en la misma respuesta. El contenido no se almacena después; solo se guarda un contador de uso anónimo. Evita pegar secretos como contraseñas o claves de API.
Herramientas relacionadas
Referencia de la tabla ASCII
Tabla ASCII completa del 0 al 127 con decimal, hex, octal, binario y referencia numérica HTML para cada carácter, incluidos los códigos de control como NUL, LF y DEL.
Generador de letras aleatorias
Genera letras aleatorias A-Z. Elige la cantidad, usa mayúsculas, minúsculas o mezcla de ambas, y aplica el resultado en juegos, consignas o clase.
Referencia de caracteres HTML
Lista buscable de entidades HTML, sus códigos nombrados y numéricos, y una copia con un clic para caracteres y símbolos especiales.
Referencia de atajos de teclado
Busca los atajos predeterminados documentados de VS Code, Chrome y Bash con GNU Readline en macOS, Windows y Linux.
Desofuscador de JavaScript
Desofusca JavaScript minificado o empaquetado con renombrado de variables, decodificación de arreglos de cadenas, reversión de aplanamiento de flujo de control y embellecimiento.
Convertidor de ASCII a Binario
Convierte cualquier cadena ASCII a su representación binaria. Cada carácter se convierte en ocho bits, separados por espacios, listos para pegar en un seguimiento de protocolo o tarea.
Herramienta disponible en otros idiomas
- TOML na JSON [PL]
- TOML เป็น JSON [TH]
- TOMLからJSONへ [JA]
- من TOML إلى JSON [AR]
- TOML to JSON [KO]
- TOML sang JSON [VI]
- TOML en JSON [FR]
- TOML zu JSON [DE]
- TOML ke JSON [ID]
- TOML para JSON [PT]
- TOML till JSON [SV]
- TOML naar JSON [NL]
- TOML to JSON [EN]
- TOML in JSON [IT]
- TOML в JSON [RU]
- TOML'dan JSON'a [TR]
- TOML 至 JSON [ZH]