Guía de conversión entre TOML y JSON
Introducción a TOML
TOML (Tom's Obvious Minimal Language) es un formato diseñado específicamente para archivos de configuración, creado por el cofundador de GitHub, Tom Preston-Werner. Sus objetivos son:
- Legible por humanos con semántica clara
- Mapeable sin ambigüedades a una tabla hash
- Más simple que YAML, más amigable que JSON
Sintaxis básica
title = "TOML Example"
[owner]
name = "Alice"
email = "alice@example.com"
[database]
host = "127.0.0.1"
port = 5432
enabled = true
Comparación TOML vs JSON vs YAML
| Característica | TOML | JSON | YAML |
|---|---|---|---|
| Comentarios | Soporta # |
No | Soporta # |
| Tipo fecha | Nativo | No | No |
| Cadenas multilínea | Sí | No | Sí |
| Complejidad | Baja | Media | Alta |
| Ambigüedad de análisis | Ninguna | Ninguna | Sí |
| Uso principal | Archivos de configuración | Intercambio de datos | Archivos de configuración |
Conversión con la herramienta TOML↔JSON
Paso 1: Elegir la dirección de conversión
Abra la herramienta TOML↔JSON y seleccione "TOML → JSON" o "JSON → TOML".
Paso 2: Ingresar datos
Pegue el contenido TOML o JSON en el área de entrada. También se admite la carga directa de archivos.
Paso 3: Convertir
Haga clic en el botón de conversión. Los resultados aparecen instantáneamente en el área de salida.
Paso 4: Copiar o descargar
Copie el resultado de la conversión con un clic, o descárguelo como archivo en el formato correspondiente.
Reglas de mapeo de TOML a JSON
Tipos básicos
string = "hello"
integer = 42
float = 3.14
boolean = true
Convertido a JSON:
{
"string": "hello",
"integer": 42,
"float": 3.14,
"boolean": true
}
Tabla → Objeto
[server]
host = "localhost"
port = 8080
Convertido a JSON:
{
"server": {
"host": "localhost",
"port": 8080
}
}
Arreglos
ports = [8000, 8001, 8002]
Fechas y horas
TOML soporta nativamente tipos de fecha. Al convertir a JSON, se convierten en cadenas:
created = 2026-06-01T10:00:00Z
→ "created": "2026-06-01T10:00:00Z"
Consideraciones de JSON a TOML
- JSON
nullno tiene equivalente en TOML — requiere manejo especial durante la conversión - Los arreglos de tipos mixtos en JSON no son válidos en TOML
- Los objetos JSON anidados se convierten en tablas TOML
- Revise los comentarios y el formato después de la conversión para asegurarse de que cumplan con sus necesidades
Casos de uso comunes
Proyectos Rust: Cargo.toml
[package]
name = "my-app"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = "1.0"
tokio = { version = "1", features = ["full"] }
Al modificar versiones de dependencias, convierta a JSON con la herramienta TOML↔JSON para procesamiento programático, y luego convierta de vuelta.
Proyectos Python: pyproject.toml
[project]
name = "my-package"
version = "1.0.0"
requires-python = ">=3.8"
[project.dependencies]
requests = "^2.28"
flask = "^2.3"
Configuración de sitios estáticos
Generadores de sitios estáticos como Hugo y Zola usan TOML como formato de configuración, requiriendo frecuentemente conversión hacia y desde JSON.
Interoperabilidad con otros formatos
- TOML ↔ YAML: Primero convierta a JSON con la herramienta TOML↔JSON, luego a YAML con la herramienta YAML↔JSON
- Valide los resultados intermedios con el Formateador JSON
- Preserve los comentarios originales de TOML y agréguelos manualmente después de la conversión
Errores comunes
| Error | Causa | Solución |
|---|---|---|
| Fallo de análisis TOML | Error de sintaxis | Verifique los encabezados de tabla y el formato clave-valor |
| Problema de formato de fecha | Zona horaria faltante | Use el formato ISO 8601 completo |
| null no se puede convertir | TOML no tiene null | Use cadena vacía o elimine el campo |
| Error de formato de tabla en línea | Sintaxis no estándar | Use formato de tabla estándar en su lugar |
Resumen
TOML es una excelente opción para archivos de configuración modernos, y la conversión hacia/desde JSON es muy práctica para la gestión de configuración de proyectos. La herramienta TOML↔JSON permite una conversión rápida de formatos, y combinada con la herramienta YAML↔JSON, puede alternar libremente entre los tres formatos.