Convertidor de JSON a TOML
Pega un objeto JSON a la izquierda y obtén TOML a la derecha. Cumplimiento estricto vía @iarna/toml. Sin subida.
- Pega un objeto JSON en el área de texto izquierda.
- Haz clic en "Convertir a TOML". El nivel superior debe ser un objeto JSON — no un array.
- Copia o descarga la salida TOML.
- Para listas de registros, usa un array de tablas TOML — envuelve con `{ items: [...] }` primero.
¿Qué hace?
Convierte un objeto JSON a un documento conforme a TOML 1.0 vía @iarna/toml. Los objetos anidados se vuelven cabeceras `[section]`; los arrays de objetos se vuelven bloques de array-de-tablas `[[items]]`; cadenas, números, booleanos y cadenas de fecha-hora ISO 8601 mapean a primitivos TOML. La salida se ordena de forma canónica — las claves aparecen antes de las sub-tablas para compatibilidad con parsers TOML estrictos.
Ejemplo
Entrada JSON:
{
"name": "Ada",
"active": true,
"address": {
"city": "London"
}
} Salida TOML:
name = "Ada"
active = true
[address]
city = "London" Trampas comunes de JSON a TOML
TOML tiene reglas de nivel superior más estrictas que JSON. Los patrones siguientes explican por qué un valor JSON que "debería funcionar" puede fallar.
- Array de nivel superior. TOML no puede representar un array JSON de nivel superior. Envuélvelo: `{"items": [...]}`. El resultado se vuelve un array-de-tablas TOML bajo `[[items]]`.
- Escalar de nivel superior. Un documento JSON desnudo `42` o `"hello"` no tiene clave a la cual unirse en TOML. Envuélvelo en un objeto: `{"value": 42}`.
- Valores null. TOML no tiene tipo null. El serializador omite por completo las claves cuyo valor JSON es null. Si necesitas representar "explícitamente nada", usa una cadena vacía `""` o un valor centinela, según tu código aguas abajo.
- Arrays de tipos mixtos. TOML 1.0 permite `[1, "two"]`, pero los parsers legados 0.5 no. Si tu TOML debe round-trip a través de tooling 0.5, mantén los arrays homogéneos en el JSON antes de convertir.
- Claves con puntos en la salida TOML. Una clave JSON como `"my.key"` se vuelve una ruta de "clave con puntos" TOML, que los parsers TOML interpretarán como anidada. Para preservar un punto literal en el nombre de la clave, el serializador la entrecomilla: `"my.key" = ...` — pero los consumidores aún pueden parsearla como ruta.
- NaN / Infinity. TOML 1.0 admite literales `nan`, `inf`, `-inf`. JSON no representa estos — típicamente llegan como las cadenas `"NaN"`, `"Infinity"`, etc. Convierte manualmente si necesitas verdaderos especiales de float TOML.
Preguntas frecuentes
¿Cómo se representan las fechas?
Las fechas JSON son cadenas ISO 8601, p. ej. `"2026-04-26T12:00:00Z"`. El serializador las mantiene como cadenas en TOML — no como tipos de fecha-hora nativos. Para obtener un fecha-hora TOML nativo, tendrías que pre-procesar y emitir el valor con el marcador de tipo correcto del lado JavaScript.
¿Se aplanan los objetos profundamente anidados?
No — se vuelven cabeceras anidadas `[a.b.c]`. Cada nivel de anidamiento se vuelve una ruta de cabecera unida con puntos. Para estructuras muy profundas, la salida puede tener líneas de cabecera largas; así es como TOML expresa la profundidad.
¿Se preservará el orden de las claves?
Mayormente. El serializador canonicaliza el orden para que los primitivos vengan antes de las sub-tablas (una regla de TOML). Dentro de cada nivel, se preserva el orden de inserción JSON.
¿Cómo obtengo una tabla inline TOML en la salida?
No puedes — el serializador siempre usa cabeceras de bloque `[section]`, nunca tablas inline. Si necesitas salida inline, post-procesa el resultado. Las tablas inline son una característica de legibilidad TOML, no una forma diferente de datos.
¿Mi JSON se sube?
No. Todo se ejecuta en tu navegador — tu entrada se parsea y serializa por JavaScript en esta página y nunca se envía a un servidor.
¿Puedo round-trip JSON → TOML → JSON?
Para tipos soportados (cadena, número, booleano, objeto anidado, array de objetos), sí. Los round-trips pierden valores null (TOML no tiene null) y pueden normalizar el orden de claves.