Skip to main content
CheckTown
Convertidores

Conversor TOML a JSON: Conversión bidireccional de formatos

Publicado 4 min de lectura
En este artículo

Que es TOML?

TOML (Tom's Obvious Minimal Language) es un formato de archivo de configuración diseñado para ser fácil de leer y escribir. Creado por Tom Preston-Werner (cofundador de GitHub) en 2013, TOML se mapea de forma inequivoca a una tabla hash, lo que facilita su análisis en estructuras de datos en cualquier lenguaje de programación.

A diferencia de YAML que depende de la indentación y tiene numerosas trampas, o JSON que carece de comentarios y comas finales, TOML ofrece un punto medio: tipado explicito (cadenas, enteros, flotantes, booleanos, fechas), sintaxis de tabla clara con [corchetes] y soporte para tablas en línea y arrays — todo sin la ambiguedad que afecta a otros formatos de configuración.

Como funciona la conversión TOML a JSON

La conversión entre TOML y JSON implica analizar el formato fuente en una estructura de datos intermedia y serializarla en el formato de destino. Cada tipo TOML se mapea directamente a un equivalente JSON.

  • Pares clave-valor — la sintaxis clave = valor de TOML se mapea a propiedades de objetos JSON; las claves con puntos como server.port se convierten en objetos anidados
  • Tablas y arrays — los encabezados [tabla] de TOML se convierten en objetos JSON, y los [[array-de-tablas]] se convierten en arrays de objetos JSON, preservando la estructura jerarquica
  • Sistema de tipos — los tipos nativos de TOML (string, integer, float, boolean, datetime) se mapean a primitivas JSON; los valores datetime se serializan como cadenas ISO 8601 ya que JSON no tiene tipo de fecha

Pruébalo gratis — sin registro

Convertir TOML a JSON →

Donde se usa TOML

TOML ha sido adoptado por varios ecosistemas importantes como formato de configuración preferido debido a su claridad y rigurosidad.

  • Ecosistema Rust — Cargo.toml es el manifiesto de paquete para cada proyecto Rust, definiendo dependencias, configuraciones de compilación y metadatos en un formato editable por humanos y analizable por maquinas
  • Empaquetado Python — pyproject.toml (PEP 518/621) se ha convertido en el estandar para configuración de proyectos Python, reemplazando setup.py y setup.cfg con un formato declarativo mas limpio
  • Generadores de sitios estaticos — Hugo usa config.toml para la configuración del sitio, y muchas otras herramientas (Deno, InfluxDB, Netlify) usan TOML para sus archivos de configuración

Preguntas frecuentes

Cuales son las diferencias entre TOML, YAML y JSON para configuración?

JSON es el mas simple pero carece de comentarios y comas finales, lo que lo hace incomodo para archivos de configuración editados por humanos. YAML soporta comentarios y es visualmente limpio pero su sintaxis basada en indentación lleva a errores sutiles. TOML soporta comentarios, tiene tipado explicito y evita el análisis basado en indentación.

Cuales son las limitaciones de TOML?

TOML puede volverse verboso para estructuras profundamente anidadas ya que cada nivel de anidamiento requiere su propio encabezado [tabla.subtabla]. Tampoco tiene tipo null (a diferencia de JSON y YAML), lo que significa que los valores ausentes deben manejarse omitiendo la clave por completo.

Como maneja TOML las fechas y horas?

TOML tiene soporte nativo para tipos de fecha y hora según RFC 3339: datetime con desplazamiento (2024-01-15T10:30:00Z), datetime local (2024-01-15T10:30:00), fecha local (2024-01-15) y hora local (10:30:00). Al convertir a JSON, estos se serializan como cadenas ISO 8601 ya que JSON no tiene tipo de fecha nativo.

Herramientas relacionadas