La conversión de JSON a TOML transforma datos de JavaScript Object Notation al lenguaje TOML (Tom's Obvious Minimal Language). JSON utiliza llaves, corchetes y claves entre comillas para representar datos estructurados. TOML emplea una sintaxis plana de clave-valor con encabezados de sección (llamados tablas) que se lee como un archivo INI pero con tipado estricto. TOML fue diseñado específicamente para archivos de configuración donde la legibilidad humana importa más que el intercambio entre máquinas.
TOML se ha convertido en el formato de configuración predeterminado para Rust (Cargo.toml), el empaquetado de Python (pyproject.toml), los sitios estáticos de Hugo, la configuración de despliegue en Netlify y muchas herramientas de línea de comandos. Cuando tus datos de origen existen como JSON — desde una respuesta de API, una configuración exportada o un archivo generado — y tu sistema de destino espera TOML, necesitas un conversor que mapee objetos JSON a tablas TOML, arrays JSON a arrays TOML y preserve cada tipo de dato con precisión.
Convertir JSON a TOML online es la forma más rápida de generar TOML válido a partir de datos JSON existentes. La conversión gestiona el mapeo de tipos automáticamente: las cadenas JSON se convierten en cadenas TOML, los números JSON en enteros o decimales TOML, los booleanos JSON se mapean directamente y los objetos JSON se convierten en tablas TOML. La única excepción es null — TOML no tiene tipo null, por lo que los valores nulos se omiten o se convierten en cadenas vacías según el conversor.
¿Por qué usar este conversor de JSON a TOML?
TOML es lo que esperan los archivos de configuración; JSON es lo que producen las APIs y las herramientas. Este conversor tiende el puente para que puedas mover datos entre los dos formatos sin reescribir nada manualmente.
⚡
Conversión instantánea
Pega el JSON y obtén la salida TOML de inmediato. La conversión se ejecuta mientras escribes, sin peticiones al servidor ni subidas de archivos.
🔒
Procesamiento con privacidad prioritaria
Toda la conversión ocurre localmente en tu navegador. Los secretos de configuración, las claves de API y las credenciales de base de datos de tu JSON nunca abandonan tu dispositivo.
🔀
Compatibilidad con estructuras complejas
Los objetos anidados se convierten en tablas TOML, los arrays de objetos en arrays de tablas ([[tabla]]) y los arrays de tipos mixtos se gestionan correctamente.
📋
Sin cuenta requerida
Abre la página y convierte. Sin registro, sin extensión que instalar, sin dependencia de CLI. Funciona en cualquier dispositivo con un navegador moderno.
Casos de uso de JSON a TOML
Configuración de proyectos Rust
Cargo.toml define las dependencias, las funcionalidades y los ajustes de compilación de los proyectos Rust. Convierte listas de dependencias en JSON o configuraciones generadas al formato Cargo.toml directamente.
Empaquetado Python (pyproject.toml)
PEP 518 y PEP 621 estandarizaron pyproject.toml como archivo de metadatos de proyectos Python. Convierte los metadatos de paquetes JSON existentes a la estructura TOML requerida.
Configuración de sitios estáticos
Hugo, Netlify y otros generadores de sitios estáticos usan archivos de configuración TOML. Al migrar desde una configuración basada en JSON o al generar la configuración de forma programática, convierte la salida a TOML.
DevOps e infraestructura
Herramientas como Terraform (para ciertos proveedores), Consul y varios entornos de contenedores aceptan configuración TOML. Convierte los ajustes exportados en JSON a TOML sin tener que reescribir los valores.
Respuesta de API a archivo de configuración
Las APIs REST devuelven JSON. Cuando necesitas usar esos datos como configuración TOML — por ejemplo, indicadores de funcionalidades o ajustes de entorno — pega la respuesta y obtén TOML válido.
Aprendizaje de la sintaxis TOML
Los estudiantes y desarrolladores que se inician en TOML pueden pegar estructuras JSON familiares y ver la salida TOML equivalente.
Comparación entre JSON y TOML
JSON y TOML comparten capacidades pero difieren en sintaxis, compatibilidad de tipos y uso previsto. Esta tabla muestra las diferencias que afectan a la conversión.
TOML tiene reglas que difieren de JSON de formas que afectan al resultado de la conversión. Estos cuatro problemas generan la mayor confusión.
TOML no tiene tipo null
JSON admite null como valor de primera clase. TOML no tiene tipo null en absoluto. Al convertir, los valores nulos deben gestionarse — ya sea omitiendo la clave por completo, usando una cadena vacía o eligiendo un valor centinela. Esto significa que un ciclo de ida y vuelta de JSON a TOML y de vuelta puede no reproducir los valores null originales.
Los arrays heterogéneos están restringidos
Los arrays JSON pueden mezclar tipos libremente: [1, "dos", true]. TOML v1.0.0 requiere que todos los elementos de un array sean del mismo tipo. Si tu JSON contiene arrays de tipos mixtos, el conversor debe convertir todos los elementos a cadena o generar un error. Verifica la salida cuando los arrays de origen contengan tipos mixtos.
Los objetos muy anidados se vuelven verbosos
JSON gestiona el anidamiento profundo de forma natural con llaves anidadas. TOML usa claves con puntos o encabezados [tabla.subtabla.clave] encadenados, que pueden volverse largos para estructuras muy anidadas. La salida es válida pero menos compacta que el JSON original.
Restricciones en el nombre de las claves
Las claves simples de TOML solo pueden contener letras ASCII, dígitos, guiones y guiones bajos. Las claves JSON pueden ser cualquier cadena. Si tu JSON tiene claves con espacios, puntos o caracteres especiales, esas claves deben ir entre comillas en la salida TOML. La mayoría de los conversores lo gestionan automáticamente, pero verifica la salida si tus claves contienen caracteres inusuales.
Ejemplos de código
Convertir JSON a TOML de forma programática requiere una biblioteca de serialización TOML en la mayoría de los lenguajes. Las bibliotecas estándar analizan JSON; la salida TOML necesita un paquete dedicado.
import json
import tomli_w # pip install tomli_w
json_str = '{"title": "My App", "database": {"host": "localhost", "port": 5432}}'
data = json.loads(json_str)
toml_str = tomli_w.dumps(data)
print(toml_str)
# → title = "My App"
# →
# → [database]
# → host = "localhost"
# → port = 5432
Go
package main
import (
"encoding/json"
"fmt"
"github.com/pelletier/go-toml/v2"
)
func main() {
jsonStr := `{"title":"My App","database":{"host":"localhost","port":5432}}`
var data map[string]interface{}
json.Unmarshal([]byte(jsonStr), &data)
tomlBytes, _ := toml.Marshal(data)
fmt.Println(string(tomlBytes))
// → title = 'My App'
// →
// → [database]
// → host = 'localhost'
// → port = 5432
}
CLI (yj / remarshal)
# Using yj (https://github.com/sclevine/yj)
echo '{"title":"My App","port":3000}' | yj -jt
# → title = "My App"
# → port = 3000
# Using remarshal (pip install remarshal)
echo '{"title":"My App","port":3000}' | remarshal -if json -of toml
# → title = "My App"
# → port = 3000
Preguntas frecuentes
¿La conversión de JSON a TOML es sin pérdidas?
Para la mayoría de los datos, sí. Cadenas, enteros, decimales, booleanos, objetos y arrays tienen equivalentes directos en TOML. Las dos excepciones son null (TOML no tiene tipo null, por lo que los valores nulos se omiten o se reemplazan) y los arrays de tipos mixtos (TOML requiere tipos uniformes en los elementos del array). Si tu JSON evita estos dos patrones, la conversión es completamente sin pérdidas.
¿Qué ocurre con los valores null de JSON en TOML?
TOML no tiene tipo null. Los conversores suelen omitir las claves con valores null de la salida, ya que no hay forma de representar "la clave existe pero no tiene valor" en TOML. Algunos conversores permiten usar una cadena vacía en su lugar. Verifica la salida si los valores null tienen significado en tus datos.
¿Puede TOML representar objetos JSON anidados?
Sí. Los objetos JSON se convierten en tablas TOML. Un objeto anidado como {"database": {"host": "localhost"}} se convierte en un encabezado de tabla [database] con host = "localhost" debajo. Se admite cualquier nivel de anidamiento mediante claves con puntos o encabezados de tabla anidados.
¿Por qué Rust y Python usan TOML en vez de JSON?
TOML admite comentarios, que son fundamentales para documentar las decisiones de configuración. Además, produce una salida más limpia para ajustes planos de clave-valor, que constituyen la mayor parte de los metadatos de paquetes. JSON prohíbe los comentarios (RFC 8259), lo que dificulta su mantenimiento como formato de configuración editado por personas.
¿Cómo gestiona TOML las fechas y horas?
TOML tiene tipos datetime nativos: datetime con desplazamiento (2024-01-15T10:30:00Z), datetime local, fecha local y hora local. JSON no tiene tipo de fecha — las fechas se almacenan como cadenas. Al convertir JSON a TOML, las cadenas con formato de fecha permanecen como cadenas a menos que el conversor detecte y convierta explícitamente los patrones ISO 8601.
¿Es seguro pegar secretos y credenciales en esta herramienta?
Sí. La conversión se ejecuta completamente en tu navegador usando JavaScript. No se envía ningún dato a ningún servidor. Puedes verificarlo abriendo las herramientas de desarrollo del navegador, cambiando a la pestaña Red y confirmando que no se realizan peticiones durante la conversión.
¿Qué versión de TOML sigue la salida?
La salida sigue TOML v1.0.0, publicada en enero de 2021 y que es la especificación estable actual. Esta versión requiere tipos uniformes en los arrays, admite claves con puntos y define el formato datetime. La especificación se mantiene en toml.io.