araç köşesi

Convertir TOML en JSON

Convertissez Cargo.toml, pyproject.toml ou tout fichier TOML en JSON ; les erreurs sont signalées par ligne et colonne

Vos données restent chez vous. La conversion se fait dans le navigateur ; rien n'est envoyé à un serveur.

Comment ça marche

Pour passer une configuration TOML à JavaScript, à jq, à une API ou à un outil qui ne lit pas le TOML, il faut d'abord la convertir en JSON. Collez le contenu du fichier dans le panneau de gauche ; le JSON apparaît à droite. Dans l'exemple, l'en-tête [base_de_donnees] devient l'objet « base_de_donnees » et l'en-tête [[entrepot]], écrit deux fois, un tableau « entrepot » de deux enregistrements. Les nombres avec tiret bas comme 1_200 deviennent 1200, et les lignes de commentaire commençant par # disparaissent, car le JSON n'a pas de commentaires. Le JSON n'a pas non plus de type date : mis_a_jour = 2026-09-27T09:00:00+01:00 devient une chaîne ISO écrite de la même façon ; les dates locales (2026-09-27) et heures locales (09:00:00) deviennent aussi des chaînes. La page est en même temps un validateur TOML : si le texte est invalide, rien n'est converti et la ligne et la colonne du problème sont indiquées, avec la cause probable quand c'est possible (par exemple « La même clé ou la même [table] est définie deux fois »). Avec le sens « JSON → TOML », la même page travaille à l'envers.

Cet outil est aussi connu sous le nom de convertir toml en json, valider fichier toml, toml to json, toml validator, toml en json.

Qu'est-ce que Fichier TOML ?

Un fichier TOML est un fichier de réglages à l'extension .toml, composé de lignes clé = valeur et d'en-têtes [section]. Les projets Rust y gardent leurs dépendances (Cargo.toml), les projets Python les informations du paquet et les réglages d'outils (pyproject.toml). Le format est pensé pour être lu par des humains et accepte les commentaires, mais sa syntaxe est stricte : une seule ligne fautive empêche le chargement de tout le fichier.

Qu'est-ce que Format de date ISO 8601 ?

ISO 8601 est la norme internationale qui écrit la date et l'heure de la plus grande unité à la plus petite : 2026-09-27 est une date, 09:00:00 une heure, et 2026-09-27T09:00:00+01:00 un instant à l'heure du Maroc. Le +01:00 final est le décalage par rapport à UTC, et Z désigne UTC. Le TOML écrit les dates ainsi et elles arrivent en JSON sous forme de chaînes au même format ; tout langage peut les reconvertir en dates sans perte.

Quelle différence entre valider du TOML et le convertir en JSON ?

La validation répond seulement à la question « ce texte respecte-t-il les règles du TOML ? » ; la conversion réécrit un texte valide dans un autre format. Cette page fait les deux en une fois : si le texte est invalide, la conversion s'arrête et l'emplacement de l'erreur est donné ; s'il est valide, le JSON apparaît. Un fichier TOML valide peut pourtant ne pas convenir au programme qui le lit : un champ name absent de la table [package] de Cargo.toml est une erreur de Cargo, pas de TOML, et seul cet outil peut la détecter.

Pièges : dates, grands nombres et inf/nan

Le TOML a quatre types de date-heure (date-heure avec décalage, date-heure locale, date locale, heure locale) ; le JSON n'en a aucun. L'outil les transforme tous en chaînes ISO 8601 et indique dans la note combien il en a converti ; le programme qui lit le JSON doit reconvertir ces champs en dates. Les dates JavaScript sont précises à la milliseconde : une heure avec microsecondes comme 00:32:00.999999 est écrite 00:32:00.999.

Les entiers TOML font 64 bits, alors que JavaScript arrondit les entiers au-delà de 2^53. L'outil lit ces nombres à part et les écrit dans le JSON chiffre pour chiffre (9223372036854775807 reste intact). inf et nan n'ont pas d'équivalent en JSON : ils deviennent null et la note vous prévient. Les décimaux à valeur entière comme 72.0 s'écrivent 72 en JSON ; la valeur numérique est la même.

L'utiliser comme validateur, et les erreurs fréquentes

Quand Cargo ou pip se contente de dire « invalid TOML » à propos d'un fichier, collez le texte ici pour voir la ligne et la colonne. Les causes les plus fréquentes : une clé ou une [table] écrite deux fois, du texte sans guillemets (nom = "Yasmine" et non nom = Yasmine), deux paires clé = valeur sur une ligne, et des booléens écrits True/False au lieu de true/false en minuscules. Une date qui n'existe pas dans le calendrier (2021-02-29) compte aussi comme une erreur : certains lecteurs TOML la décalent sans rien dire au 1er mars, cette page s'arrête et montre la ligne.

Si le texte est valide, le JSON apparaît à droite et la note indique le nombre de clés, signe que le fichier respecte les règles du TOML (version 1.1 ; les fichiers 1.0 passent aussi). Le lecteur utilisé est la bibliothèque libre smol-toml, qui réussit la suite de tests officielle toml-test et fonctionne à l'intérieur de la page.

Questions fréquentes

Comment convertir un fichier TOML en JSON ?

Collez le texte TOML dans le panneau de gauche de cette page ; le JSON apparaît à droite. Les en-têtes [table] deviennent des objets et les en-têtes [[table]] des tableaux d'objets. Copiez le résultat ou téléchargez-le en fichier .json.

Comment vérifier qu'un fichier TOML est valide ?

Collez son contenu ici. S'il est valide, du JSON apparaît à droite ; sinon, la ligne, la colonne et la cause probable de l'erreur sont indiquées. La vérification suit les règles de TOML 1.1 (les fichiers 1.0 passent aussi) ; les règles propres à un outil, comme le champ name obligatoire de Cargo ou Poetry, ne sont pas vérifiées.

Pourquoi les dates sont-elles devenues des chaînes en JSON ?

Le JSON n'a pas de type date ; les dates-heures TOML sont donc écrites en chaînes au format ISO 8601 (par exemple "2026-09-27T09:00:00+01:00"). Le programme qui lit le JSON doit reconvertir ces chaînes en dates ; tous les langages courants lisent directement le format ISO.

Mon fichier est-il envoyé à un serveur ?

Non. Le TOML est lu entièrement dans votre navigateur par un lecteur libre intégré à la page ; même un fichier de configuration contenant des mots de passe ou des clés d'accès ne quitte pas cette page. Une fois chargée, la page fonctionne aussi hors connexion.