TOML (Tom's Obvious Minimal Language) est un format de fichier de configuration conçu pour être lisible par les humains. Il se mappe sans ambiguïté vers une table de hachage, prend en charge les tables imbriquées, les valeurs typées et les commentaires en ligne. De nombreux outils et frameworks utilisent TOML comme format de configuration principal : les projets Rust s'appuient sur Cargo.toml, le packaging Python utilise pyproject.toml, et les sites statiques Hugo se configurent via config.toml. Convertir TOML en JSON en ligne vous permet de transformer ces fichiers de configuration dans un format que pratiquement tous les langages de programmation, API et pipelines de données peuvent consommer nativement.
JSON (JavaScript Object Notation), défini par la RFC 8259, est le format d'échange de données le plus largement supporté. Alors que TOML privilégie la lisibilité humaine avec sa syntaxe minimale et la prise en charge des commentaires, JSON favorise l'interopérabilité entre machines. Un convertisseur TOML vers JSON comble cet écart en analysant l'entrée TOML selon la spécification TOML v1.0.0 et en produisant un document JSON structurellement équivalent. La conversion préserve toutes les données : les chaînes, entiers, flottants, booléens, tableaux et tables sont directement mappés vers leurs équivalents JSON.
TOML possède quatre types natifs de date/heure que JSON ne peut pas représenter directement : les date-heures avec décalage, les date-heures locales, les dates locales et les heures locales. JSON n'ayant pas de type date, ces valeurs sont sérialisées sous forme de chaînes ISO 8601 lors de la conversion.
Pourquoi utiliser un convertisseur TOML vers JSON ?
Les fichiers de configuration écrits en TOML doivent souvent alimenter des systèmes qui n'acceptent que le JSON. Plutôt que de réécrire le fichier à la main ou d'installer une bibliothèque d'analyse en local, un convertisseur basé sur le navigateur effectue la transformation en quelques secondes.
🔒
Traitement axé sur la confidentialité
Vos données TOML sont analysées et converties entièrement dans le navigateur. Rien n'est envoyé à un serveur, ce qui permet de convertir en toute sécurité des fichiers de configuration contenant des clés API, des identifiants de base de données ou des noms d'hôtes internes.
⚡
Conversion instantanée
Collez votre TOML et obtenez immédiatement une sortie JSON formatée. Inutile d'installer des packages Node.js, des bibliothèques Python ou des outils CLI juste pour effectuer une conversion ponctuelle de format.
🔀
Prise en charge complète de TOML v1.0.0
Le convertisseur gère tous les types de données TOML, y compris les clés pointées, les tables en ligne, les tableaux de tables, les chaînes multi-lignes et les valeurs de date-heure. Les cas particuliers qui compliquent la conversion manuelle sont traités correctement.
📋
Aucun compte requis
Ouvrez la page, collez votre TOML et copiez le résultat JSON. Aucune inscription, aucune limite d'utilisation, aucun suivi. L'outil fonctionne de la même manière à chaque visite.
Cas d'utilisation de TOML vers JSON
Développement frontend
Convertissez les métadonnées du Cargo.toml d'un projet Rust WASM en JSON pour les utiliser dans un script de build JavaScript ou une étape de génération de package.json.
Ingénierie backend
Transformez la configuration d'une application écrite en TOML en JSON pour l'injecter dans des environnements qui exigent une configuration JSON, comme les variables d'environnement AWS Lambda ou les étiquettes de conteneurs Docker.
DevOps et CI/CD
Les outils de pipeline comme GitHub Actions et GitLab CI travaillent souvent avec des entrées JSON. Convertissez les configurations d'outils basées sur TOML (rustfmt.toml, taplo.toml) en JSON pour les étapes de linting ou de validation.
Assurance qualité et tests
Générez des fixtures de test JSON à partir de fichiers sources TOML. TOML est plus facile à maintenir comme source de données de test grâce à sa prise en charge des commentaires et sa syntaxe lisible, mais les harnais de test attendent souvent une entrée JSON.
Ingénierie des données
Lors de la migration de configurations entre systèmes, les fichiers TOML d'une plateforme (par ex., InfluxDB, Telegraf) peuvent devoir devenir des documents JSON pour l'API ou l'outil d'importation d'une autre plateforme.
Apprentissage et éducation
Les étudiants qui apprennent les formats de données peuvent coller des exemples TOML et voir exactement comment les tables deviennent des objets imbriqués, comment les tableaux de tables deviennent des tableaux JSON, et comment les types de date TOML se mappent vers des chaînes.
Référence de correspondance des types TOML vers JSON
Chaque type TOML a un équivalent JSON direct, à une exception près : les valeurs de date et d'heure. Le tableau ci-dessous montre comment chaque type TOML se convertit en JSON. Ce mappage suit la spécification TOML v1.0.0 et correspond au comportement des parseurs standard comme tomllib (Python), toml-rs (Rust) et @iarna/toml (Node.js).
Type
Syntaxe TOML
Sortie JSON
String
"value"
"value"
Integer
42
42
Float
3.14
3.14
Boolean
true / false
true / false
Offset Date-Time
1979-05-27T07:32:00Z
"1979-05-27T07:32:00Z"
Local Date-Time
1979-05-27T07:32:00
"1979-05-27T07:32:00"
Local Date
1979-05-27
"1979-05-27"
Local Time
07:32:00
"07:32:00"
Array
[1, 2, 3]
[1, 2, 3]
Table
[section]
{ "section": {} }
Inline Table
{ key = "val" }
{ "key": "val" }
Array of Tables
[[items]]
"items": [{}]
Les entiers TOML prennent en charge les tirets bas pour la lisibilité (ex. : 1_000_000) ainsi que les littéraux hexadécimaux (0xDEADBEEF), octaux (0o755) et binaires (0b11010110). Tous se convertissent en nombres décimaux ordinaires en JSON. TOML prend également en charge les valeurs flottantes infinity et NaN, mais celles-ci n'ont pas de représentation JSON et provoqueront une erreur de conversion en mode strict.
Exemples de code
Exemples fonctionnels de conversion TOML vers JSON dans quatre langages. Chacun lit un fichier TOML, l'analyse et produit un JSON formaté.
import tomllib # Python 3.11+ (standard library)
import json
with open('config.toml', 'rb') as f:
data = tomllib.load(f)
print(json.dumps(data, indent=2, default=str))
# Dates become strings: "1979-05-27"
# Arrays of tables become JSON arrays of objects
Go
package main
import (
"encoding/json"
"fmt"
"os"
"github.com/BurntSushi/toml"
)
func main() {
var data map[string]any
_, err := toml.DecodeFile("config.toml", &data)
if err != nil {
panic(err)
}
out, _ := json.MarshalIndent(data, "", " ")
fmt.Println(string(out))
}
Que devient les commentaires TOML lors de la conversion ?
Les commentaires TOML (lignes commençant par #) sont supprimés lors de la conversion. JSON ne prend pas en charge les commentaires, il n'est donc pas possible de les conserver dans la sortie. Si vous avez besoin de conserver les commentaires, envisagez d'utiliser JSONC (JSON avec commentaires) comme format cible.
La conversion TOML vers JSON peut-elle entraîner une perte de données ?
Pour les documents TOML standards, aucune donnée n'est perdue. Toutes les chaînes, nombres, booléens, tableaux et tables ont des équivalents JSON directs. La seule transformation concerne les valeurs de date et d'heure, qui deviennent des chaînes ISO 8601 en JSON. Deux cas particuliers peuvent poser problème : TOML prend en charge les flottants infinity et NaN, qui n'ont pas de représentation JSON, et les très grands entiers peuvent dépasser les limites de précision des parseurs JSON (2^53 - 1 en JavaScript).
Comment les tableaux de tables TOML sont-ils représentés en JSON ?
La syntaxe [[double-crochet]] de TOML définit un tableau de tables. Chaque bloc [[section]] ajoute un nouvel objet à un tableau JSON. Par exemple, deux blocs [[fruits]] deviennent un tableau JSON avec deux objets : "fruits": [{...}, {...}]. La syntaxe à double crochet est l'une des parties les plus délicates de TOML à lire à froid ; la sortie JSON rend la structure évidente.
La conversion est-elle réversible ? Peut-on repasser de JSON à TOML ?
Structurellement, oui. Tout objet JSON peut être représenté comme une table TOML, et les tableaux JSON se mappent vers des tableaux TOML. Cependant, les fonctionnalités spécifiques à TOML comme les commentaires, le regroupement de clés pointées et le formatage des tables en ligne sont perdues lors de la conversion initiale TOML vers JSON et ne peuvent pas être récupérées. L'aller-retour produira du TOML valide mais potentiellement moins lisible.
Quelle est la différence entre TOML et JSON pour les fichiers de configuration ?
TOML a été conçu pour la configuration : il prend en charge les commentaires, dispose d'une syntaxe plus lisible pour les structures imbriquées, fait la distinction entre entiers et flottants, et inclut des types date/heure natifs. JSON a été conçu pour l'échange de données entre programmes. JSON est plus largement supporté par les outils et les API, mais TOML est plus facile à lire et à modifier pour les humains. De nombreux projets utilisent TOML pour la configuration source et convertissent en JSON pour le déploiement.
Comment cet outil gère-t-il les clés pointées comme server.host ?
Les clés pointées en TOML (ex. : server.host = "localhost") créent des objets imbriqués en JSON : {"server": {"host": "localhost"}}. C'est équivalent à définir une table [server] avec une clé host. Le convertisseur résout automatiquement les clés pointées dans leur structure imbriquée complète.
Pourquoi mon fichier TOML échoue-t-il à la conversion ?
Les causes courantes incluent : des guillemets manquants autour des valeurs de chaîne (TOML les exige), l'utilisation de tabulations pour l'indentation à l'intérieur des chaînes de base multi-lignes, des définitions de clés en double, et le mélange de clés pointées avec des en-têtes de table explicites pour le même chemin. Le convertisseur affiche le message d'erreur du parseur avec le numéro de ligne pour vous aider à localiser le problème.