Convertisseur TOML → JSON pour Cargo.toml, pyproject.toml et configs Rust
Lisez Cargo.toml, pyproject.toml ou toute configuration TOML comme du JSON, et réécrivez des objets JSON en tables TOML dans le navigateur. Les dates, tableaux de tables et tables pointées sont gérés par le parseur ; les commentaires, l'ordre des clés et null ne le sont pas.
Comment fonctionne ce convertisseur TOML ↔ JSON
Pensé pour les fichiers manifeste
Collez Cargo.toml ou pyproject.toml et inspectez les tables imbriquées ainsi que les entrées [[bin]] / [[bench]] sous forme d'objets et tableaux JSON.
Les tableaux de tables vont dans les deux sens
Les blocs [[products]] deviennent des tableaux d'objets, et un tableau JSON d'objets de même forme est réécrit en blocs [[table]]. Les tableaux imbriqués restent inline.
Les dates et heures sont analysées en objets Date
Les date-heures, dates et heures TOML deviennent des Date JavaScript ; le JSON affiche donc des chaînes ISO comme 1979-05-27T07:32:00.000Z. La conversion inverse écrit une chaîne entre guillemets, pas une date TOML native.
Les tables imbriquées et pointées sont reconstruites
[tool.poetry] et [a.b] deviennent des objets imbriqués. Les clés scalaires sortent avant les sous-tables, donc l'ordre d'origine n'est pas conservé.
Conversion locale avec sélection de fichier
Choisissez des fichiers .toml / .json ou collez le texte, puis téléchargez le résultat. Aucun envoi, aucune option d'indentation ou de tri.
FAQ sur la conversion TOML ↔ JSON
JSON → TOML prend-il en charge null ?
Non. TOML n'a pas de type null et le sérialiseur supprime silencieusement les clés dont la valeur est null, y compris les éléments null dans les tableaux. Supprimez ou remplacez les null avant de convertir, sinon les données disparaissent sans erreur.
Comment sont gérées les dates et heures ?
TOML → JSON analyse les date-heures, dates locales et heures locales en objets Date et affiche des chaînes ISO : 1979-05-27T07:32:00.000Z, 1979-05-27, 07:32:00.000. JSON → TOML traite ces chaînes comme du texte ordinaire et les met entre guillemets : elles ne redeviennent pas des dates TOML natives. Seul un véritable objet Date issu de l'analyse est écrit sans guillemets. Une heure courte comme 07:32 échoue avec « Incomplete time » : les secondes sont obligatoires.
Les commentaires et l'ordre des clés sont-ils conservés ?
Non. Les commentaires et lignes vides sont supprimés à l'analyse et jamais régénérés. L'ordre change aussi : les clés scalaires d'abord, puis les sous-tables. Les clés dupliquées sont refusées avec « Can't redefine existing key ».
Comment les tableaux de tables sont-ils représentés ?
Les blocs [[products]] deviennent des tableaux d'objets JSON. À l'inverse, un tableau d'objets est écrit en blocs [[products]], et les tableaux imbriqués restent inline. La racine JSON doit être un objet : une racine tableau échoue avec « Can only stringify objects, not array ».
Pourquoi mon tableau JSON échoue-t-il avec « Array values can't have mixed types » ?
Ce parseur exige des tableaux TOML homogènes (règles TOML 0.5). Un tableau mélangeant nombres et chaînes, ou objets et scalaires, lève une erreur. Séparez-les en plusieurs tableaux ou utilisez une table.
Et les grands entiers, NaN et les valeurs vides ?
Les entiers au-delà de 2^53 perdent en précision et s'écrivent avec des soulignés, par exemple 12_345_678_901_234_567_000. NaN et Infinity deviennent nan / inf. Un tableau vide s'écrit [ ], un objet vide { }, et les clés undefined sont ignorées silencieusement.
Mon fichier est-il envoyé, et que se passe-t-il en cas d'erreur ?
Tout s'exécute dans le navigateur ; aucun fichier n'est envoyé. Il n'y a pas de limite configurée, mais la conversion est synchrone : un manifeste de plusieurs MB peut bloquer la page. Un TOML invalide colore la zone de gauche en rouge et affiche un toast ; un JSON invalide colore la zone de droite en rouge. Aucun sens ne produit de résultat partiel.

