Convertidor de JSON a TOML
Pega JSON y obtén TOML al instante en tu navegador. Manejo seguro de null y salida lista para Cargo.toml y pyproject.toml. 100% privado, sin subir nada.
Opciones · 2 espacios
¿Qué es TOML y por qué convertir desde JSON?
TOML (Tom's Obvious, Minimal Language) es un formato de archivo de configuración construido para ser inequívoco y fácil de leer y editar para las personas. Es el formato de configuración estándar del ecosistema de Rust (Cargo.toml), del empaquetado moderno de Python (pyproject.toml) y de herramientas como Hugo, Netlify, Poetry y Foundry. JSON es el formato universal de máquina que producen las herramientas y las API. Convertir JSON a TOML es habitual cuando tienes datos estructurados en JSON pero necesitas una configuración TOML editable por personas como destino: generar un Cargo.toml o un pyproject.toml, o convertir los ajustes JSON de una aplicación en un archivo de configuración legible.
TOML está más estructurado que JSON, y esta herramienta convierte esa rigurosidad en orientación en lugar de en fallos crípticos:
**1. Exigencia de tabla en el nivel superior.** Todo documento TOML es una tabla en la raíz: un array o escalar suelto no es TOML válido. En lugar de emitir una salida rota ante una entrada con { array de nivel superior }, esta herramienta lo detecta y te dice exactamente cómo envolver tus datos bajo una clave, para que siempre obtengas un TOML válido o una explicación clara.
**2. Manejo de null seguro y transparente.** JSON tiene null; TOML no. La mayoría de convertidores o fallan o descartan datos en silencio. Esta herramienta es explícita: las claves de objeto con valores null se descartan y las claves eliminadas se enumeran en una advertencia, y un null dentro de un array —que no tiene representación TOML válida— produce un error preciso que apunta a la ruta. Nunca te sorprende que falten datos.
**3. Salida TOML idiomática.** Los objetos anidados se convierten en [tablas], los objetos profundamente anidados en tablas con puntos ([tool.ruff]) y los arrays de objetos en arrays de tablas ([[section]]): la forma que usan los archivos Cargo.toml y pyproject.toml reales. La conversión está impulsada por la biblioteca smol-toml, sin dependencias y conforme a TOML 1.0.0.
**4. Privacidad 100% en el navegador.** Tu JSON —que puede contener credenciales, tokens o detalles de servicios internos— nunca sale de tu navegador. Sin subidas, sin servidor, sin registros. Confírmalo en la pestaña de Red de tu navegador.
¿Necesitas la dirección inversa? Usa el Convertidor de TOML a JSON. ¿Trabajas con otros formatos de configuración? Prueba el Convertidor de JSON a YAML y el Convertidor de YAML a JSON, o limpia primero tu entrada JSON con el Formateador de JSON. Cada formato tiene su nicho: JSON para el intercambio entre máquinas, TOML para la configuración de aplicaciones y herramientas editada por personas y YAML para manifiestos de infraestructura profundamente anidados. Este convertidor te permite pasar de JSON a TOML sin escribir ni una línea de código.
// Convert JSON to TOML in Node.js using the smol-toml library
import { stringify } from 'smol-toml';
const data = JSON.parse(`{
"package": { "name": "my-app", "version": "1.0.0" },
"dependencies": { "serde": { "version": "1.0" } }
}`);
// The top-level value must be an object; null values on objects are dropped.
const toml = stringify(data);
console.log(toml);
// [package]
// name = "my-app"
// version = "1.0.0"
//
// [dependencies.serde]
// version = "1.0" Características clave
Conversión en vivo
La salida TOML se actualiza al instante a medida que escribes o pegas JSON, sin necesidad de un botón Convertir. Las entradas grandes (>200 KB) cambian automáticamente al modo manual para mantener el navegador con buena respuesta.
Orientación sobre la tabla de nivel superior
Los documentos TOML deben ser una tabla en la raíz. Si el nivel superior de tu JSON es un array o un escalar, la herramienta te dice exactamente cómo envolverlo bajo una clave: sin salida rota ni conjeturas.
Manejo seguro de null
TOML no tiene null. Las claves de objeto con valores null se descartan y se enumeran en una advertencia; un null dentro de un array genera un error preciso que apunta a la ruta. Siempre sabes qué pasó con tus datos.
Salida TOML idiomática
Los objetos anidados se convierten en [tablas], los objetos profundamente anidados en tablas con puntos ([tool.ruff]) y los arrays de objetos en arrays de tablas ([[section]]): la forma que usan los Cargo.toml y pyproject.toml reales.
Conciencia de flotantes y enteros
TOML separa los enteros de los flotantes, así que un flotante como 1.0 se escribe como el entero 1. La herramienta te avisa cuando esta coerción cambia el tipo de un valor, para que las sorpresas en las conversiones de ida y vuelta sean visibles.
Privacidad 100% en el navegador
Todo el análisis se ejecuta localmente en tu navegador. Tu JSON —incluidas credenciales, tokens y detalles de servicios internos— nunca se sube, almacena ni registra.
Ejemplos
Fuente de Cargo.toml
{
"package": {
"name": "my-app",
"version": "1.0.0",
"edition": "2021"
},
"dependencies": {
"serde": { "version": "1.0", "features": ["derive"] },
"tokio": { "version": "1", "features": ["full"] }
}
} Genera un Cargo.toml de Rust a partir de JSON: los objetos anidados se convierten en [tablas] y los objetos en línea en tablas en línea, exactamente como espera Cargo.
Fuente de pyproject.toml
{
"build-system": {
"requires": ["hatchling"],
"build-backend": "hatchling.build"
},
"project": {
"name": "my-package",
"version": "0.3.1",
"requires-python": ">=3.10",
"dependencies": ["requests>=2.31", "pydantic>=2.0"]
}
} Genera un pyproject.toml conforme a PEP 621 a partir de metadatos de proyecto en JSON: útil cuando una herramienta o API produce JSON que necesitas en forma de TOML.
Ajustes de app
{
"title": "My Service",
"debug": false,
"port": 8080,
"database": {
"host": "localhost",
"port": 5432,
"pool_size": 10
},
"features": ["auth", "metrics", "tracing"]
} Convierte un objeto plano de ajustes de aplicación a TOML: los escalares de nivel superior se quedan arriba y el objeto database anidado se convierte en una tabla [database].
Servidores (array de tablas)
{
"servers": [
{ "name": "alpha", "ip": "10.0.0.1", "ports": [8001, 8002] },
{ "name": "beta", "ip": "10.0.0.2", "ports": [9001] }
]
} Un array de objetos se convierte en un array de tablas ([[servers]]) en TOML: la forma idiomática de expresar secciones repetidas.
Fuente de configuración de Netlify
{
"build": {
"command": "npm run build",
"publish": "dist",
"environment": { "NODE_VERSION": "20" }
},
"redirects": [
{ "from": "/old", "to": "/new", "status": 301, "force": true }
]
} Convierte una configuración de despliegue en JSON en un netlify.toml, con tablas anidadas [build] y [build.environment] y un array de tablas [[redirects]].
Configuración con estructura de puntos
{
"tool": {
"ruff": { "line-length": 100, "target-version": "py310" },
"black": { "line-length": 100 }
}
} Los objetos JSON profundamente anidados se convierten en tablas TOML con puntos como [tool.ruff] y [tool.black]: la forma que espera la herramienta pyproject.toml.
Cómo usarlo
- 1
Pega tu JSON
Introduce o pega tu JSON en el campo de entrada de arriba. También puedes pulsar 'Cargar ejemplo' para probar una fuente de Cargo.toml, una fuente de pyproject.toml o un objeto de ajustes de app.
- 2
Observa la salida TOML en vivo
El TOML aparece al instante en el panel de salida. Si tu JSON tiene un array de nivel superior o valores null, la herramienta explica exactamente qué hacer en lugar de producir una salida rota.
- 3
Copia o descarga
Pulsa Copiar para llevar el TOML al portapapeles o Descargar para guardarlo como archivo .toml, listo para Cargo, Poetry, Hugo, Netlify o cualquier herramienta que lea TOML.
Errores comunes de JSON a TOML
Array o escalar de nivel superior
Los documentos TOML deben ser una tabla (objeto) en la raíz. Un array JSON o un valor solitario no puede ser un documento TOML. Envuélvelo bajo una clave para convertirlo.
[1, 2, 3]
{ "items": [1, 2, 3] } Valores null en objetos
TOML no tiene tipo null, así que una clave de objeto con valor null se descarta durante la conversión. La herramienta te avisa de qué claves se eliminaron. Si necesitas conservar la clave, dale un valor real o una cadena vacía.
{ "name": "a", "nickname": null } { "name": "a", "nickname": "" } Null dentro de un array
Un array TOML no puede contener un null ni un hueco, así que un JSON como [1, null, 3] no tiene salida TOML válida. Elimina el null o reemplázalo por un valor real antes de convertir.
{ "ports": [8001, null, 8003] } { "ports": [8001, 8003] } Sintaxis JSON no válida
La entrada debe ser primero JSON válido. Las comas finales, las comillas simples y las claves sin comillas son errores comunes copiados de JavaScript que no son JSON válido y deben corregirse antes de convertir.
{ 'name': 'a', 'active': true, } { "name": "a", "active": true } Un flotante con fracción cero se vuelve entero
TOML escribe un flotante cuya parte fraccionaria es cero (1.0) como el entero 1, cambiando su tipo en una conversión de ida y vuelta. La herramienta te avisa. Si el valor es conceptualmente un entero, no hay problema; si debe seguir siendo un flotante, TOML no puede conservarlo para los números enteros.
{ "ratio": 1.0 } → ratio = 1 { "ratio": 1.5 } → ratio = 1.5 Mezclar objeto y array en la misma clave
Una clave JSON debe ser de forma coherente un objeto o un array para asignarse a una tabla o a un array de tablas. Formas incoherentes a lo largo de un conjunto de datos pueden producir un TOML confuso: normaliza primero la estructura.
{ "server": { "a": 1 }, "server": [1] } { "server": { "a": 1 }, "servers": [1] } Casos de uso comunes
- Generar Cargo.toml
- Convierte JSON estructurado —de una herramienta de andamiaje, una API o un script— en un Cargo.toml de Rust válido, con tablas [dependencies] anidadas y tablas en línea generadas automáticamente.
- Generar pyproject.toml
- Convierte metadatos de proyecto en JSON en un pyproject.toml conforme a PEP 621, incluyendo tablas con puntos [tool.*], para que las herramientas que emiten JSON puedan producir configuración de empaquetado de Python.
- Configuración editable por personas desde JSON
- Transforma los ajustes JSON de una aplicación en un archivo de configuración TOML legible que las personas puedan editar cómodamente, añadiendo comentarios después a mano.
- Generación de configuración de despliegue
- Produce netlify.toml, foundry.toml o configuraciones de plataforma similares a partir de JSON, convirtiendo objetos anidados y arrays de objetos en las tablas y arrays de tablas que esperan esas herramientas.
- Migración de formato de configuración
- Traslada la configuración de un sistema basado en JSON a uno basado en TOML, usando este convertidor como puente y las advertencias de null y de nivel superior para detectar cualquier cosa que no se asigne.
- Prototipar la estructura TOML
- Esboza una configuración en JSON —un formato que la mayoría de desarrolladores escribe con fluidez— y luego conviértela a TOML para ver la disposición idiomática de tablas y arrays de tablas antes de subirla a un repositorio.
Detalles técnicos
- Análisis de JSON conforme a RFC 8259
- La entrada JSON se analiza con el JSON.parse() nativo del navegador, totalmente conforme a RFC 8259. Antes de la serialización, la herramienta comprueba que el valor de nivel superior es un objeto y busca valores null para poder avisar de las claves de objeto descartadas o rechazar un null dentro de un array con una ruta precisa.
- Salida TOML 1.0.0 con smol-toml
- El TOML se genera con la biblioteca smol-toml, un serializador sin dependencias y totalmente conforme a TOML 1.0.0. Los objetos anidados se convierten en tablas, los objetos profundamente anidados en tablas con puntos y los arrays de objetos en arrays de tablas. Los flotantes con parte fraccionaria cero se escriben como enteros según las reglas de TOML, con una advertencia.
- 100% en el navegador: sin subidas, sin servidor
- Todo el procesamiento ocurre en el motor JavaScript de tu navegador. En ningún momento se transmiten datos. Las entradas mayores de 200 KB pasan del modo en vivo al modo manual (una pulsación explícita en Convertir) para mantener la interfaz con buena respuesta.
Buenas prácticas
- Envuelve los arrays de nivel superior bajo una clave
- Si tus datos son de forma natural un array JSON, envuélvelos en un objeto con una clave descriptiva ({ "items": [...] }) antes de convertir. Los documentos TOML deben ser una tabla en la raíz, y la clave da a tu array un nombre claro en la salida.
- Decide qué deben significar los nulls
- Antes de convertir, decide si un campo null debe desaparecer (descartar la clave) o llevar un valor. TOML descartará los nulls de objeto y rechazará los nulls de array, así que resolverlos primero en tu JSON da una salida predecible y completa.
- Usa objetos anidados para agrupar
- Agrupa ajustes relacionados en objetos anidados en tu JSON: se convierten en [tablas] limpias y tablas con puntos en TOML, mucho más legibles que una lista plana de claves, tal como se organizan las configuraciones de Cargo y pyproject.
- Valida tu JSON primero
- Si tu JSON está escrito a mano o procede de una fuente poco fiable, valídalo con nuestro Formateador de JSON para detectar comas finales y errores de comillas antes de convertir a TOML.
- Añade comentarios después de convertir
- JSON no tiene comentarios, así que ninguno se traslada. Como TOML admite comentarios #, añade documentación al TOML generado a mano: una de las principales razones para pasar la configuración editada por personas a TOML.
Preguntas frecuentes
¿Cómo convierto JSON a TOML en línea?
¿Qué es TOML y por qué convertir JSON a él?
¿Por qué el nivel superior de mi JSON debe ser un objeto?
¿Qué ocurre con los valores null al convertir JSON a TOML?
¿Cómo se convierten los objetos y arrays anidados a TOML?
¿Qué ocurre con los números de coma flotante como 1.0?
¿Se envían mis datos JSON a algún servidor?
¿Puedo convertir TOML de nuevo a JSON?
¿Cómo convierto JSON a TOML en la línea de comandos?
¿Cómo convierto JSON a TOML en Python, Rust o Node.js?
¿El convertidor conserva el orden de las claves?
¿Hay un límite de tamaño para la entrada JSON?
Herramientas relacionadas
Ver todas las herramientas →Decodificador y Codificador Base64
Codificación y Formato
Decodifica y codifica Base64 online de forma gratuita. Conversión en tiempo real con soporte completo de UTF-8 y emojis. 100% privado — funciona en tu navegador. Sin registro.
Conversor de Base64 a Imagen
Codificación y Formato
Decodifica una cadena Base64 o data URI de vuelta a una imagen en tu navegador. Previsualiza, lee dimensiones y MIME, luego descarga como PNG, JPG, GIF, SVG. Sin subir.
Convertidor de CSV a JSON
Codificación y Formato
Convierte CSV a JSON en tu navegador. RFC 4180, inferencia de tipos, fila de cabecera, seguro para big-int. 100% privado, sin carga.
Conversor de .env a JSON
Codificación y Formato
Pega un archivo .env y obtén JSON al instante. Tus contraseñas, claves API y tokens nunca salen del navegador: 100% privado, sin subidas, gratis.
Decodificador de entidades HTML gratuito — Desescapar HTML
Codificación y Formato
Decodifica entidades HTML y desescapa HTML online: gratis, sin registro, 100 % en tu navegador. Convierte referencias nombradas, decimales y hex de vuelta en caracteres; nunca se sube.
Codificador de entidades HTML gratuito — Escapar HTML
Codificación y Formato
Codifica entidades HTML y escapa caracteres especiales (< > & " ') online: gratis, sin registro, 100 % en tu navegador. Salida con nombre, decimal o hex; nunca se sube.