Utilia

Conversor de TOML a JSON

Convierte TOML a JSON y JSON a TOML en tu navegador. Admite tablas, arrays de tablas, fechas y enteros de 64 bits. No se sube nada.

Conversión

Cómo convertir TOML a JSON

  1. Elige la dirección: TOML → JSON (la predeterminada) o JSON → TOML.
  2. Pega tus datos o pulsa Abrir un archivo para cargar un archivo .toml o .json (hasta 10 MB).
  3. Para TOML → JSON, elige la Sangría (2 o 4 espacios) y decide si marcas Enteros grandes como cadenas. Para JSON → TOML, deja marcada o desmarca Omitir los valores null.
  4. Marca Ordenar las claves si quieres que cada tabla quede ordenada alfabéticamente.
  5. El resultado se actualiza mientras escribes; Convertir lo vuelve a ejecutar cuando quieras. Los errores indican la línea y la columna del problema.
  6. Copia o descarga el resultado. Invertir la dirección pasa el resultado a la entrada para convertirlo de vuelta.

TOML y JSON, frente a frente

TOML (Tom’s Obvious Minimal Language) es el formato de configuración que hay detrás de Cargo.toml en Rust, pyproject.toml en Python, los sitios de Hugo y Netlify y muchas herramientas de línea de comandos. Está pensado para que lo lean y editen personas, y se corresponde directamente con un árbol al estilo JSON de tablas (objetos), arrays y valores.

[package]
name = "demo"
version = "0.1.0"

[[bin]]
name = "cli"

se convierte en

{"package": {"name": "demo", "version": "0.1.0"}, "bin": [{"name": "cli"}]}
  • Una cabecera [table] se convierte en un objeto JSON, y las claves con puntos como a.b.c = 1 se convierten en objetos anidados.
  • Un array de tablas, [[bin]], se convierte en un array JSON de objetos.
  • Las tablas en línea { x = 1 } y los arrays funcionan como cabría esperar. Los comentarios se eliminan, ya que JSON no los tiene.

En qué se diferencian los dos formatos

Fechas y horas. TOML tiene cuatro tipos nativos de fecha y hora; JSON no tiene ninguno. El conversor los escribe como cadenas ISO 8601 y conserva su variante: una fecha y hora con desfase sigue siendo 1979-05-27T07:32:00.000-08:00, una fecha local sigue siendo 1979-05-27 y una hora local sigue siendo 07:32:00.000. Las fracciones de segundo se conservan hasta el milisegundo. Al volver a TOML se obtienen cadenas normales, porque nada en JSON indica que sean fechas.

Enteros. Los enteros de TOML son de 64 bits con signo, de −9 223 372 036 854 775 808 a 9 223 372 036 854 775 807. Los números de JavaScript, que usan la mayoría de los analizadores JSON, solo son exactos hasta 2^53 (9 007 199 254 740 991). Los enteros TOML mayores se escriben con todas sus cifras, lo que es JSON válido, pero un programa que los lea como números de coma flotante los redondeará; marca Enteros grandes como cadenas para evitarlo. Un entero fuera del rango de 64 bits se rechaza, como exige la especificación de TOML.

Números flotantes especiales. inf, -inf y nan no tienen representación en JSON, así que se escriben como las cadenas "inf", "-inf" y "nan".

JSON → TOML. Un documento TOML siempre es una tabla, así que el JSON debe ser un objeto en el nivel superior. TOML no tiene null: por defecto, los valores null se omiten y un mensaje indica cuántos; desmarca Omitir los valores null para obtener en su lugar un error con la ubicación del primero. JSON no distingue 1 de 1.0, así que los números enteros se convierten en enteros TOML, y los números demasiado grandes para 64 bits pasan a ser flotantes. En los navegadores recientes, los enteros grandes de tu JSON conservan sus cifras exactas.

Preguntas frecuentes

¿Se envía mi configuración a algún sitio?

No. La conversión se ejecuta íntegramente en tu navegador, así que las claves de API o los secretos de tus archivos de configuración nunca salen de tu ordenador.

¿Por qué ha cambiado el orden de mis claves en el resultado TOML?

TOML exige que los pares clave/valor simples vayan antes de las subtablas en cada tabla, así que el conversor escribe primero los valores, luego las [tablas] y después los [[arrays de tablas]]. Los datos son los mismos.

¿Se conservan los comentarios de TOML?

No. JSON no tiene comentarios, así que se pierden al convertir TOML → JSON, y no hay ninguno que restaurar a la vuelta.

¿Qué versión de TOML se admite?

TOML 1.0, incluidas las claves con puntos, las tablas en línea, los arrays de tablas, los enteros hexadecimales, octales y binarios y los cuatro tipos de fecha y hora.

¿Por qué mi fecha es una cadena en JSON?

JSON no tiene tipo de fecha. Las cadenas ISO 8601 son la convención habitual y la mayoría de los lenguajes pueden interpretarlas directamente.