Convertisseur YAML vers JSON

Collez du YAML (manifestes Kubernetes, Docker Compose, configurations CI) et obtenez instantanément du JSON propre. Les erreurs indiquent la ligne exacte avec un repère.

Fonctionne dans le navigateurSans inscriptionAucun envoi de données

Sortie JSON

Comment utiliser : YAML vers JSON

  1. Collez du YAML dans la zone de gauche ou ouvrez un fichier .yaml/.yml.
  2. Le JSON apparaît à droite pendant la saisie. Choisissez 2 espaces, 4 espaces ou des tabulations pour la sortie.
  3. Cochez Trier les clés pour classer les clés par ordre alphabétique. Pratique pour comparer des configurations.
  4. Si le YAML est invalide, la barre d’état indique la ligne et la colonne, et les lignes en cause s’affichent en dessous avec un repère ^.
  5. Copiez ou téléchargez le JSON, ou cliquez sur Inverser pour le reconvertir en YAML.

Comment le YAML se traduit en JSON

Le JSON est un sous-ensemble de YAML 1.2 : chaque mapping YAML devient un objet JSON, chaque séquence devient un tableau, et les scalaires deviennent des chaînes, des nombres, des booléens ou null. Les fonctionnalités propres au YAML sont résolues lors de la conversion :

  • Les commentaires (# …) sont supprimés, car le JSON n’a pas de commentaires.
  • Les ancres et alias (&base, *base, <<: *base) sont développés en copies complètes.
  • Les dates comme 2024-01-02 deviennent des chaînes ISO 8601.
  • Les chaînes multilignes (blocs littéraux | et repliés >) deviennent des chaînes ordinaires avec des échappements \n.

YAML multi-documents

Un même fichier peut contenir plusieurs documents YAML séparés par ---, comme c’est courant dans les manifestes Kubernetes. Le JSON n’a pas d’équivalent : le convertisseur renvoie donc un tableau JSON avec un élément par document et le signale dans la barre d’état. Un --- isolé en fin de fichier est ignoré.

Pièges entre YAML 1.1 et 1.2

Ce convertisseur suit YAML 1.2, la spécification actuelle. Beaucoup d’outils plus anciens (PyYAML, Psych de Ruby, certaines versions de Kubernetes et d’Ansible) lisent encore du YAML 1.1, où les règles diffèrent :

  • Le problème de la Norvège : en YAML 1.1, country: no signifie false, et le code pays de la Norvège NO disparaît. Il en va de même pour yes, on, off, y et n. YAML 1.2 ne considère comme booléens que true et false.
  • Nombres octaux : 0755 est octal en 1.1 mais décimal en 1.2, qui utilise 0o755. Mettez les permissions de fichiers entre guillemets par sécurité.
  • Nombres sexagésimaux : en 1.1, 22:30 peut être lu comme le nombre 1350. Mettez entre guillemets les heures et les mappings de ports comme "8080:80".

Dans le sens JSON → YAML, les chaînes ambiguës ('no', 'on', 'y') sont automatiquement mises entre guillemets : le YAML produit se lit donc de la même façon dans les deux versions.

Questions fréquentes

Mon YAML est-il envoyé quelque part ?
Non. L’analyse se fait dans votre navigateur avec la bibliothèque open source js-yaml. Les configurations contenant des secrets ou des noms d’hôtes internes ne quittent jamais votre machine.
Pourquoi mon YAML échoue-t-il avec « bad indentation » ?
L’imbrication YAML est définie par des espaces, et les tabulations sont interdites pour l’indentation. Vérifiez que les clés de même niveau sont parfaitement alignées et que les éléments de liste (-) sont indentés de façon cohérente sous leur clé parente.
Que deviennent les commentaires YAML ?
Ils sont supprimés. Le JSON n’a pas de syntaxe de commentaire, ils ne peuvent donc pas être conservés. Une reconversion en YAML ne les restaure pas.
Pourquoi <code>no</code> est-il resté une chaîne ?
Cet outil suit YAML 1.2, où seuls true/false sont des booléens. Les anciens parseurs YAML 1.1 transformeraient no, yes, on et off en booléens (le « problème de la Norvège »).
Puis-je convertir un manifeste Kubernetes contenant plusieurs ressources ?
Oui. Chaque ressource séparée par --- devient un élément du tableau JSON de sortie, prêt pour jq ou kubectl apply -f -, qui accepte aussi les listes JSON.

Outils associés