Aller au contenu

Conversion JSON ⇄ YAML

JSON ⇄ YAML

Convertit dans les deux sens en préservant l’ordre des clés, avec style en blocs ou en flux du côté YAML.

Convertit entre YAML, JSON et TOML dans les deux sens, dans le navigateur. Les analyseurs sont écrits pour ce site plutôt que tirés de npm : c'est pourquoi la page peut lister exactement ce qu'elle refuse — ancres, tags, flux multi-documents — au lieu de les lire de travers en silence.

🔒 Fonctionne entièrement dans votre navigateurjsonyamlconvert
Depuis
Lu comme du YAML.
Vers

Entrée

Déposez un fichier .yaml, .json ou .toml

Lu dans cet onglet. Rien n’est envoyé.

Sortie JSON

Écrits ici plutôt que tirés de npm, ce qui veut dire que le sous-ensemble est choisi et non hérité. Tout ce qui figure dans cette liste est refusé nommément au lieu d’être mal lu.

Comment s’en servir

  1. Collez la configuration

    Le format est détecté à partir du texte, et l'étiquette sous le sélecteur indique celui qui a été retenu. Forcez-le si la détection se trompe — un fichier JSON est aussi du YAML valide, un document `{ }` peut donc aller dans les deux sens.

  2. Choisissez la cible

    YAML pour un manifeste Kubernetes ou un fichier de CI, JSON pour tout ce qui est analysé par un programme, TOML pour un fichier de projet Rust ou Python.

  3. Lisez les avertissements, pas seulement la sortie

    Une conversion réussie peut tout de même avoir changé de sens — un `null` abandonné en route vers TOML, un `yes` lu comme la chaîne qu'il est sous YAML 1.2. Cela apparaît dans une note sous la sortie plutôt que d'être caché.

  4. Ouvrez la liste des limites quand quelque chose est refusé

    La section repliée en bas nomme chaque construction que ces analyseurs ne traitent pas, et pourquoi. Un refus renvoie à cette liste au lieu d'échouer sur une erreur d'analyseur qu'il vous faudrait interpréter.

Questions fréquentes

Pourquoi mes ancres et alias sont-ils refusés ?

Parce qu'étendre `*base` correctement suppose d'implémenter la sémantique de fusion de YAML, et s'y tromper subtilement produit un fichier qui a l'air juste et qui déploie autre chose. Les étendre à la main avant de coller est fiable ; deviner ne l'est pas. La même raison couvre `<<: *base`.

Pourquoi `yes` est-il devenu une chaîne ?

Parce que le schéma de base de YAML 1.2 dit que c'en est une — seuls `true` et `false` sont des booléens. Les analyseurs YAML 1.1, dont certains encore en production, le lisent comme un booléen. La différence est annoncée dans les avertissements quand elle se produit, car c'est exactement le genre de chose qui change un déploiement.

Que devient un `null` en route vers TOML ?

Il est abandonné et un avertissement le dit. TOML n'a pas de valeur null du tout : les choix étaient d'omettre la clé ou d'inventer un substitut, et en inventer un mettrait une chaîne littérale `"null"` dans la configuration de quelqu'un.

Les commentaires sont-ils conservés ?

Non. La conversion passe par un modèle de données, et les commentaires ne sont pas des données — JSON n'a nulle part où les mettre. Si vous tenez aux commentaires, les formateurs YAML et TOML de ce site réindentent sur place et les gardent.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.