YAML JSON TOML
Convertissez entre YAML, JSON et TOML dans toutes les directions localement dans le navigateur, pour les migrations CI et les workflows de configuration.
Ce que fait l'outil
- Six sens de conversion entre YAML, JSON et TOML
- Ancres et alias résolus, chaînes multilignes conservées
- Sélection indépendante du format source et du format cible
- Erreurs d'analyse avec ligne et colonne
- Traitement local, les fichiers de config ne quittent pas l'onglet
YAML, JSON et TOML décrivent le même type de données (dictionnaires, listes, chaînes, nombres, booléens) avec trois syntaxes différentes, et une même équipe jongle souvent avec les trois : manifestes Kubernetes en YAML, pyproject.toml ou Cargo.toml en TOML, API et outils en JSON. Ce convertisseur lit l'un et écrit l'autre : choisissez le format d'entrée au-dessus du panneau de gauche, le format de sortie au-dessus du panneau de droite, puis cliquez sur Convertir. Les bibliothèques Rust serde_yaml, serde_json et toml, compilées en WebAssembly, font le travail dans votre navigateur : vos fichiers de configuration ne partent sur aucun serveur.
Les six sens de conversion et leurs pages dédiées
Toutes les directions sont disponibles ici. Les quatre plus recherchées ont aussi une page dédiée, avec les formats présélectionnés et un guide propre à la paire :
- YAML vers JSON : pour fournir une config YAML à un outil ou une API qui ne lit que du JSON. Voir le convertisseur YAML vers JSON.
- JSON vers YAML : pour écrire des fichiers Kubernetes, Docker Compose, GitHub Actions ou Ansible à partir de données JSON. Voir le convertisseur JSON vers YAML.
- TOML vers JSON : pour inspecter un
pyproject.toml, unCargo.tomlou une config Hugo avec des outils JSON. Voir le convertisseur TOML vers JSON. - JSON vers TOML : pour générer une configuration TOML à partir de données structurées. Voir le convertisseur JSON vers TOML.
- YAML vers TOML et TOML vers YAML : disponibles uniquement sur cette page. La conversion passe en interne par JSON, donc les règles des deux étapes s'appliquent.
Mode d'emploi
- Sélectionnez le format d'entrée (YAML par défaut) et collez votre contenu à gauche.
- Sélectionnez le format de sortie (JSON par défaut).
- Cliquez sur Convertir. Le résultat s'affiche à droite avec un message du type « Converti de YAML vers JSON », ou une erreur indiquant ce qui n'a pas pu être lu.
- Copiez la sortie avec le bouton de copie. Si l'entrée et la sortie sont dans le même format, le texte est simplement recopié.
Ce qui est conservé, ce qui change
La conversion passe par un modèle de données, pas par une réécriture du texte. Les données sont préservées, la mise en forme du fichier source ne l'est pas.
- Les commentaires disparaissent. Ils ne font pas partie des données, et JSON n'a pas de syntaxe pour eux. Gardez le fichier d'origine si les commentaires comptent.
- Ordre des clés : en sortie JSON et YAML, les clés sont triées par ordre alphabétique. En TOML, les clés simples viennent d'abord, puis les tables
[section], comme l'exige le format. - Ancres et alias (
&base,*base) sont résolus : le contenu référencé est recopié à chaque endroit où il est utilisé. La clé de fusion<<n'est en revanche pas développée et ressort comme une clé littérale nommée<<. - Chaînes multilignes : elles sont conservées et, en sortie YAML, écrites en bloc (
|-), ce qui garde lisibles scripts et certificats. - Tableaux d'objets : ils deviennent des tableaux de tables en TOML (
[[serveurs]]).
Limites et cas particuliers
- Un seul document YAML à la fois. Un fichier contenant plusieurs documents séparés par
---, courant avec Kubernetes, est refusé. Convertissez chaque document séparément. - Typage YAML 1.2.
yes,no,onetoffrestent des chaînes, et010reste la chaîne « 010 ». Fini le « problème de la Norvège », où le code paysNOdevenaitfalse. Seulstrueetfalse(y comprisTrueouTRUE) sont des booléens. - TOML exige une table racine. Un JSON qui est un tableau ou une valeur seule ne peut pas devenir du TOML : enveloppez-le dans un objet, par exemple
{"elements": [...]}. - TOML ne connaît pas null. Une valeur
nullen JSON ou YAML fait échouer la conversion vers TOML. Supprimez la clé ou remplacez la valeur. - Dates TOML : une date comme
1979-05-27T07:32:00Zdevient, en JSON ou en YAML, un objet contenant une clé interne$__toml_private_datetimeavec la date en texte. Remplacez cet objet par une simple chaîne si votre cible l'attend.
Par rapport aux outils en ligne de commande
En ligne de commande, yq convertit YAML en JSON et inversement, et Python s'en charge avec PyYAML et le module standard tomllib (qui lit le TOML mais ne l'écrit pas). Ce sont les bons choix dans un script ou un pipeline CI. Cette page est plus rapide pour une vérification ponctuelle pendant une migration, fonctionne sur un poste où l'on ne peut rien installer, et offre la même confidentialité qu'un outil local.
Confidentialité : vos configurations contiennent des secrets
Mots de passe de base de données, tokens d'API, URL de registres privés, noms d'hôtes internes : les fichiers de configuration en regorgent, parfois par erreur. Les convertir sur un site qui traite l'entrée côté serveur expose ces valeurs. Ici, l'analyse et l'écriture s'exécutent en WebAssembly dans l'onglet, sans requête réseau pour votre contenu, ce que vous pouvez vérifier dans l'onglet Réseau du navigateur. Vos données restent sur votre poste, sous votre contrôle, ce qui simplifie aussi la conformité RGPD.
Foire aux questions
- Mes fichiers de configuration sont-ils envoyés ?
- Non. La conversion s'exécute dans votre navigateur via WebAssembly. Le contenu collé ne quitte jamais la page.
- Pourquoi mes commentaires YAML ont-ils disparu ?
- Un commentaire n'est pas une donnée : il est perdu dès l'analyse du document, et JSON ne peut de toute façon pas en contenir. Conservez votre fichier source commenté comme référence.
- Puis-je convertir un fichier Kubernetes à plusieurs documents ?
- Pas en une fois. Découpez le fichier sur les séparateurs
---et convertissez chaque document séparément. - Pourquoi JSON vers TOML échoue-t-il avec « invalid type: null » ?
- TOML n'a pas de valeur nulle. Supprimez les clés à null, ou donnez-leur une chaîne vide ou une valeur par défaut, puis reconvertissez.
- « yes » est-il converti en true ?
- Non. Le parseur suit YAML 1.2, où seuls true et false sont des booléens. Écrivez true ou false dans la source si vous voulez des booléens en sortie.
- Peut-on convertir directement du YAML en TOML ?
- Oui : choisissez YAML en entrée et TOML en sortie. La conversion passe par JSON en interne, donc les limites du TOML (table racine, pas de null) s'appliquent.
Outil connexe : pour mettre en forme ou valider le côté JSON d'une conversion, utilisez le formateur et validateur JSON.