Ce que fait cet outil
Les objets imbriqués deviennent des tables ; les tableaux d’objets, des tableaux de tables.
{
"db": { "host": "localhost", "pool": { "size": 10 } },
"servers": [{ "name": "a" }, { "name": "b" }]
}
[db]
host = "localhost"
[db.pool]
size = 10
[[servers]]
name = "a"
[[servers]]
name = "b"
La racine doit être un objet : un fichier TOML est une table, un tableau JSON au sommet n’a donc nulle part où accrocher ses clés.
C’est null qui arrête tout
TOML n’a pas de valeur nulle, et les deux façons de prétendre le contraire sont fausses :
- retirer la clé change ce que dit le fichier — un réglage absent n’est pas un réglage mis à rien ;
- écrire
""invente une valeur qui n’était pas là.
La conversion s’arrête donc et vous dit laquelle. C’est le seul endroit où elle refuse un document JSON valide, et elle le refuse parce que finir reviendrait à mentir.
Les entiers au-delà de 64 bits sont écrits tels quels
{ "id": 12345678901234567890 }
ressort avec ses vingt chiffres. Les entiers TOML sont signés sur 64 bits : cette valeur sort de la plage, et un lecteur strict refusera le fichier.
C’est délibéré. L’autre option — l’arrondir en 12345678901234567000, ce que fait un convertisseur qui passe par un double — vous rend un fichier qui s’analyse proprement et qui contient un autre nombre. Un échec bruyant vaut mieux qu’un mensonge discret.
Les dates restent des chaînes
JSON n’a pas de type date : "2026-01-01" arrive en texte et repart en "2026-01-01", entre guillemets.
TOML a bien des dates natives, et en employer une reviendrait à décider que l’auteur pensait à une date. Parfois oui ; parfois cette chaîne est une référence produit, un nom de dossier, une version. JSON nous a déjà dit que c’était du texte, et il n’y a aucune raison de le contredire.
Confidentiel par conception
Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.