Skip to content

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.

Sin rastreo Se ejecuta en el navegador Gratis
0 caracteres
TOML Salida
0 líneas
Revisado para la conformidad con la especificación TOML 1.0.0, la exigencia de tabla en el nivel superior y el manejo transparente de null — Equipo de Ingeniería de Go Tools · Jul 2, 2026

¿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. 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. 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. 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.

✗ Incorrecto
[1, 2, 3]
✓ Correcto
{ "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.

✗ Incorrecto
{ "name": "a", "nickname": null }
✓ Correcto
{ "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.

✗ Incorrecto
{ "ports": [8001, null, 8003] }
✓ Correcto
{ "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.

✗ Incorrecto
{ 'name': 'a', 'active': true, }
✓ Correcto
{ "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.

✗ Incorrecto
{ "ratio": 1.0 }  →  ratio = 1
✓ Correcto
{ "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.

✗ Incorrecto
{ "server": { "a": 1 }, "server": [1] }
✓ Correcto
{ "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?
Pega tu JSON en el campo de entrada de arriba. La herramienta lo analiza y produce TOML al instante en tu navegador, sin necesidad de pulsar ningún botón. Cuando el TOML aparezca en el área de salida, pulsa Copiar para llevarlo al portapapeles o Descargar para guardarlo como archivo .toml. Todo se ejecuta localmente, así que tu JSON nunca sale de tu dispositivo. Dos cosas que conviene saber antes de empezar: el nivel superior de tu JSON debe ser un objeto (no un array) y los valores null no tienen equivalente en TOML; la herramienta explica ambos con claridad si aparecen.
¿Qué es TOML y por qué convertir JSON a él?
TOML (Tom's Obvious, Minimal Language) es un formato de configuración diseñado para que las personas lo lean y escriban con facilidad, con una semántica inequívoca. Es el formato de configuración de Cargo en Rust, del pyproject.toml de Python, de Hugo, Netlify, Poetry y más. Conviertes JSON a TOML cuando una herramienta o API te da JSON pero el destino espera TOML: por ejemplo, generar un Cargo.toml o un pyproject.toml a partir de datos estructurados, o convertir los ajustes JSON de una aplicación en un archivo de configuración TOML editable por personas.
¿Por qué el nivel superior de mi JSON debe ser un objeto?
Los documentos TOML son siempre una tabla (un conjunto de pares clave-valor) en la raíz: la especificación no permite un array, una cadena o un número sueltos en el nivel superior. Así que un array JSON como [1, 2, 3] o un valor solitario como 42 no pueden convertirse directamente. La solución es envolverlo bajo una clave: { "items": [1, 2, 3] } se convierte limpiamente en items = [1, 2, 3]. Esta herramienta detecta un nivel superior que no es un objeto y te dice exactamente cómo envolverlo, en lugar de producir una salida rota.
¿Qué ocurre con los valores null al convertir JSON a TOML?
TOML no tiene tipo null, así que null no puede representarse. Esta herramienta lo gestiona de forma segura y transparente de dos maneras. Cuando un null aparece como valor de un objeto, TOML simplemente omite esa clave, y la herramienta muestra una advertencia que enumera exactamente qué claves se descartaron, para que nunca te sorprenda una pérdida silenciosa de datos. Cuando un null aparece dentro de un array, no hay ninguna salida TOML válida (un array no puede contener un hueco), así que la herramienta comunica un error que apunta a la ruta exacta del null infractor. En ambos casos, sabes con precisión qué ocurrió y dónde.
¿Cómo se convierten los objetos y arrays anidados a TOML?
Un objeto JSON anidado se convierte en una tabla TOML: { "owner": { "name": "Tom" } } se convierte en [owner] con name = "Tom". Los objetos profundamente anidados se convierten en tablas con puntos como [tool.ruff]. Un array de objetos se convierte en un array de tablas escrito con dobles corchetes ([[servers]]), que es la forma idiomática de TOML de expresar secciones repetidas. Los arrays de escalares se quedan en línea como arrays (ports = [8001, 8002]). La salida sigue la especificación TOML 1.0.0.
¿Qué ocurre con los números de coma flotante como 1.0?
TOML distingue los enteros de los flotantes, y un flotante cuya parte fraccionaria es cero (como 1.0) se escribe como el entero 1. Así que { "version": 1.0 } se convierte en version = 1. La herramienta muestra una pequeña advertencia cuando ocurre esta coerción, porque cambia el tipo del valor en una conversión de ida y vuelta. Si necesitas que el valor siga siendo un flotante, esa distinción no puede conservarse a través de TOML para los números enteros; plantéate si un entero es realmente lo que quieres.
¿Se envían mis datos JSON a algún servidor?
No. Todo el análisis y la conversión ocurren por completo en tu navegador mediante JavaScript. Tu JSON nunca se sube, nunca se almacena y nunca se registra. Esto hace que la herramienta sea segura para configuraciones que contienen claves de API, credenciales de base de datos o detalles de servicios internos. Puedes verificarlo abriendo la pestaña de Red de tu navegador: pegar JSON no genera ninguna petición de red.
¿Puedo convertir TOML de nuevo a JSON?
Sí. Usa el Convertidor de TOML a JSON complementario para la dirección inversa, o pulsa el botón Invertir dirección en la parte superior de esta herramienta para intercambiar la entrada y la salida en el mismo sitio. La conversión de TOML a JSON tiene menos restricciones —acepta cualquier TOML válido—, así que el ciclo JSON → TOML → JSON es fiable siempre que tu JSON no tuviera nulls ni un array de nivel superior de partida.
¿Cómo convierto JSON a TOML en la línea de comandos?
Una opción popular es la herramienta Go 'yj' (yj -jt lee JSON y escribe TOML). En Python puedes usar el paquete de terceros 'tomli-w': import json, tomli_w; tomli_w.dump(json.load(open('config.json')), open('config.toml','wb')). En Node.js: import { stringify } from 'smol-toml'; const toml = stringify(JSON.parse(text)) — la misma biblioteca que usa esta herramienta. Para algo rápido y puntual sin instalar nada, esta herramienta de navegador es el camino más veloz.
¿Cómo convierto JSON a TOML en Python, Rust o Node.js?
En Python: import json, tomli_w; tomli_w.dump(json.load(open('config.json')), open('config.toml','wb')). En Rust: usa serde_json y toml — let value: serde_json::Value = serde_json::from_str(&text)?; let toml = toml::to_string_pretty(&value)?. En Node.js: import { stringify } from 'smol-toml'; const toml = stringify(JSON.parse(text)) — este es exactamente el enfoque que usa esta herramienta. Recuerda que el valor de nivel superior debe ser un objeto en todos ellos.
¿El convertidor conserva el orden de las claves?
Las claves dentro de una tabla se conservan en su orden original, pero la estructura de TOML exige que todos los pares clave-valor simples de una tabla vayan antes que cualquier cabecera de tabla hija. Así que los escalares de nivel superior se emiten primero, y luego las tablas y los arrays de tablas: el convertidor reordena solo donde la gramática de TOML lo exige. Los datos son idénticos; solo cambia el orden textual de las secciones de tabla para producir un TOML válido.
¿Hay un límite de tamaño para la entrada JSON?
No hay un límite estricto, pero las entradas de más de 200 KB pasan de la conversión en vivo al modo manual: aparece un botón Convertir y la conversión solo se ejecuta al pulsarlo, manteniendo el navegador con buena respuesta. Las cargas de configuración típicas se convierten en bastante menos de 50 milisegundos.

Herramientas relacionadas

Ver todas las herramientas →