Convertidor de TOML a JSON

Pega TOML a la izquierda y obtén JSON a la derecha. Tablas a objetos, arrays de tablas a arrays. Sin subida.

  1. Pega tu TOML en el área de texto izquierda.
  2. Haz clic en "Convertir a JSON". La salida es un objeto JSON que preserva el anidado de tablas.
  3. Copia el resultado o descárgalo como data.json.
  4. Los valores de fecha-hora se convierten a cadenas ISO 8601; los guiones bajos en números se eliminan.
¿Qué hace?

Parsea un documento TOML 1.0 a un objeto JSON. Las tablas `[section]` se vuelven objetos anidados; los arrays de tablas `[[items]]` se vuelven arrays JSON. Cadenas, enteros (incluyendo literales hex/octal/binario y guiones bajos de agrupación), flotantes, booleanos, fechas, fechas-hora y horas mapean a representaciones equivalentes en JSON. Las tablas y arrays inline se aplanan de la misma manera.

Ejemplo

Entrada TOML:

name = "Ada"
active = true

[address]
city = "London"

Salida JSON:

{
  "name": "Ada",
  "active": true,
  "address": {
    "city": "London"
  }
}

Errores comunes de TOML y cómo arreglarlos

TOML tiene reglas más estrictas que YAML o JSON en algunos lugares. Los patrones a continuación cubren la mayoría de fallos del parser.

  • Cadenas sin comillas. `name = Ada` es inválido — los valores desnudos se interpretan como claves/booleanos/números, no cadenas. Usa comillas dobles: `name = "Ada"`.
  • Arrays de tipo mixto (TOML 0.x). TOML 0.5 prohibió tipos mixtos en arrays; TOML 1.0 los permite. @iarna/toml sigue 1.0, así que `[1, "two"]` es válido aquí. Si tu TOML debe round-trip a través de herramientas 0.5, mantén los arrays homogéneos.
  • Re-definir una tabla. Definir `[a]` dos veces es un error. Cada cabecera de tabla debe aparecer como mucho una vez. Fusiona las claves en un único bloque `[a]`.
  • Fecha-hora sin zona horaria. `d = 2026-04-26T12:00:00` (sin Z ni desplazamiento) es una "fecha-hora local" — parsea, pero JSON no tiene concepto de localidad. La salida es la misma cadena con la hora del reloj de pared, no un instante UTC. Añade `Z` para UTC: `d = 2026-04-26T12:00:00Z`.
  • Confusión de escape con triple comilla. Las cadenas multilínea básicas TOML usan `"""..."""` y procesan escapes; las cadenas multilínea literales usan `\'\'\'...\'\'\'` y no. Mezclar reglas de escape es el error más común en cadenas multilínea.
  • Extensión de tabla inline. Una tabla inline `point = {x=1, y=2}` está cerrada y autocontenida — no puedes después escribir `[point.z]` ni `point.z = 3`. Para extender, usa la sintaxis estándar `[point]` en su lugar.
Preguntas frecuentes

¿Cómo se representan las fechas-hora en JSON?

JSON no tiene tipo nativo de fecha-hora, así que los valores se vuelven cadenas ISO 8601. Las fechas-hora con desplazamiento (`2026-04-26T12:00:00Z`) y locales (`2026-04-26T12:00:00`) ambas se stringifican literalmente — pero solo la forma con desplazamiento es inequívoca en JSON.

¿Se preservan los guiones bajos en enteros?

No — TOML permite `1_000_000` como ayuda de legibilidad; el parser elimina los guiones bajos y el valor JSON es `1000000`. La agrupación es puramente una característica del texto fuente TOML.

¿Qué pasa con los comentarios TOML?

Se descartan. Los comentarios TOML empiezan con `#`; JSON no tiene sintaxis de comentarios, así que el parser los descarta. Si necesitas preservarlos, necesitarías un formato intermedio diferente.

¿Se admiten arrays de tablas?

Sí. Los bloques `[[products]]` repetidos varias veces se vuelven un array JSON bajo la clave `products`. Cada cabecera `[[products]]` introduce una nueva entrada de array; las líneas clave-valor subsiguientes pueblan esa entrada.

¿Puedo convertir archivos TOML realmente grandes?

Hasta unos 30 MB antes de que el textarea se ralentice. Los archivos TOML muy grandes son raros — la mayoría de archivos de configuración están bien por debajo de 1 MB.

¿Mi TOML se sube?

No. Todo se ejecuta en tu navegador — tus datos se parsean por JavaScript en esta página y nunca se envían a un servidor.