Qué hace esta herramienta
Un documento TOML se vuelve JSON. Las tablas anidan, y los [[arreglos de tablas]] se vuelven arreglos.
title = "Demo"
[server]
host = "localhost"
port = 8080
{
"title": "Demo",
"server": {
"host": "localhost",
"port": 8080
}
}
Las claves con puntos anidan igual: a.b.c = 1 te da {"a": {"b": {"c": 1}}}.
Los enteros grandes, intactos
snowflake = 1096285471735640155
{
"snowflake": 1096285471735640155
}
TOML pide enteros con signo de 64 bits, y un número de JavaScript solo guarda 53 exactos. El analizador respondía al documento entero con «integer value cannot be represented losslessly»: un archivo TOML legal, rechazado por un identificador. Ahora las cifras viajan como cifras, porque el JSON lo escribe un serializador sin pérdida, el mismo que en todo este sitio mantiene intactos los números grandes. Era un defecto real, encontrado al escribir esta página y corregido.
inf y nan se nombran, no se anulan
rate = inf
JSON has no infinity: "rate" is inf
TOML tiene inf, -inf y nan; JSON no tiene ninguno de los tres, y JSON.stringify los escribe como null. Una tasa infinita se volvía una tasa ausente, y nada en el resultado lo decía. La herramienta ahora se detiene en el valor y nombra la clave que lo lleva, igual que ya rechaza un null en el camino de vuelta a TOML. Qué poner en su lugar —una cadena, un número muy grande, ninguna clave— es una decisión sobre tus datos, no una lectura.
Lo que JSON no tiene
- Un tipo fecha.
1979-05-27T00:32:00-07:00se vuelve la cadena"1979-05-27T00:32:00.000-07:00". El desfase se guarda; los milisegundos se escriben aunque la fuente no los tuviera. - Dos clases de número. TOML distingue el entero del flotante, JSON tiene un solo número:
1.0llega como1. Vuelve a convertir y tendrás un entero donde escribiste un flotante. - Comentarios. Documentan el archivo, no los datos, y no hay dónde ponerlos.
Un archivo que empieza con una marca de orden de bytes —el invisible U+FEFF que los editores de Windows añaden con gusto— se rechazaba con un mensaje sobre los caracteres permitidos en una clave, señalando un carácter que no se ve. Ahora se quita antes de leer.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.