Convertisseur TOML vers JSON
Collez du TOML à gauche, obtenez du JSON à droite. Tables vers objets, tableaux de tables vers tableaux. Sans upload.
- Collez votre TOML dans la zone de texte de gauche.
- Cliquez sur « Convertir en JSON ». La sortie est un objet JSON préservant l'imbrication des tables.
- Copiez le résultat ou téléchargez-le en data.json.
- Les valeurs date-heure sont converties en chaînes ISO 8601 ; les soulignements dans les nombres sont retirés.
Que fait-il ?
Parse un document TOML 1.0 en objet JSON. Les tables `[section]` deviennent des objets imbriqués ; les tableaux de tables `[[items]]` deviennent des tableaux JSON. Chaînes, entiers (y compris les littéraux hex/octal/binaire et les soulignements de groupage), flottants, booléens, dates, dates-heure et heures se mappent vers des représentations équivalentes en JSON. Les tables et tableaux inline sont aplatis de la même manière.
Exemple
Entrée TOML :
name = "Ada"
active = true
[address]
city = "London" Sortie JSON :
{
"name": "Ada",
"active": true,
"address": {
"city": "London"
}
} Erreurs TOML courantes et comment les corriger
TOML a des règles plus strictes que YAML ou JSON par endroits. Les motifs ci-dessous couvrent la plupart des échecs de parser.
- Chaînes sans guillemets. `name = Ada` est invalide — les valeurs nues sont interprétées comme clés/booléens/nombres, pas chaînes. Utilisez des guillemets doubles : `name = "Ada"`.
- Tableaux à types mixtes (TOML 0.x). TOML 0.5 interdisait les types mixtes dans les tableaux ; TOML 1.0 les permet. @iarna/toml suit 1.0, donc `[1, "two"]` est valide ici. Si votre TOML doit faire un aller-retour via des outils 0.5, gardez les tableaux homogènes.
- Redéfinir une table. Définir `[a]` deux fois est une erreur. Chaque en-tête de table ne doit apparaître qu'au plus une fois. Fusionnez les clés dans un seul bloc `[a]`.
- Date-heure sans fuseau horaire. `d = 2026-04-26T12:00:00` (pas de Z ni de décalage) est une « date-heure locale » — ça parse, mais JSON n'a pas de concept de localité. La sortie est la même chaîne avec l'heure murale, pas un instant UTC. Ajoutez `Z` pour UTC : `d = 2026-04-26T12:00:00Z`.
- Confusion d'échappement avec triple guillemet. Les chaînes multi-lignes basiques TOML utilisent `"""..."""` et traitent les échappements ; les chaînes multi-lignes littérales utilisent `\'\'\'...\'\'\'` et non. Mélanger les règles d'échappement est l'erreur la plus courante des chaînes multi-lignes.
- Extension de table inline. Une table inline `point = {x=1, y=2}` est fermée et auto-contenue — vous ne pouvez pas écrire ensuite `[point.z]` ni `point.z = 3`. Pour étendre, utilisez plutôt la syntaxe de bloc standard `[point]`.
Questions fréquentes
Comment les dates-heure sont-elles représentées en JSON ?
JSON n'a pas de type natif date-heure, donc les valeurs deviennent des chaînes ISO 8601. Les dates-heure avec décalage (`2026-04-26T12:00:00Z`) et locales (`2026-04-26T12:00:00`) sont toutes deux stringifiées littéralement — mais seule la forme avec décalage est non ambiguë en JSON.
Les soulignements d'entiers sont-ils préservés ?
Non — TOML permet `1_000_000` comme aide à la lisibilité ; le parser supprime les soulignements et la valeur JSON est `1000000`. Le groupage est purement une caractéristique du texte source TOML.
Que deviennent les commentaires TOML ?
Ils sont supprimés. Les commentaires TOML commencent par `#` ; JSON n'a pas de syntaxe de commentaires, donc le parser les jette. Pour les préserver, il faudrait un format intermédiaire différent.
Les tableaux de tables sont-ils supportés ?
Oui. Les blocs `[[products]]` répétés plusieurs fois deviennent un tableau JSON sous la clé `products`. Chaque en-tête `[[products]]` introduit une nouvelle entrée de tableau ; les lignes clé-valeur suivantes peuplent cette entrée.
Puis-je convertir de très grands fichiers TOML ?
Jusqu'à environ 30 Mo avant que le textarea ne ralentisse. Les très grands fichiers TOML sont rares — la plupart des fichiers de config sont bien en dessous de 1 Mo.
Mon TOML est-il téléchargé ?
Non. Tout s'exécute dans votre navigateur — vos données sont parsées par JavaScript sur cette page et ne sont jamais envoyées à un serveur.