Convertisseur YAML vers JSON
Convertissez des données YAML en JSON. Transformez instantanément dans le navigateur des structures écrites en YAML — manifestes Kubernetes, docker-compose.yml, fichiers de configuration CI — vers un format que des outils exclusivement JSON comme jq peuvent traiter.
Astuces d'utilisation
- Collez directement un manifeste Kubernetes ou un docker-compose.yml pour visualiser sa structure en JSON, afin que des outils en ligne de commande comme jq, qui ne comprennent que le JSON, puissent l'interroger.
- Les valeurs non entre guillemets commençant par un zéro, comme les codes postaux ou numéros de téléphone, sont interprétées comme des nombres et perdent ce zéro initial ; mettez toujours entre guillemets les valeurs que vous voulez conserver en texte.
- Le YAML complexe utilisant des ancres (`&`), des alias (`*`) ou des scalaires en bloc (`|`/`>`) n'est pas pris en charge. Réécrivez-le sous une forme plus simple avant de le coller.
- Décochez « Affichage formaté » pour obtenir un JSON sur une seule ligne sans saut de ligne, pratique pour le coller dans le corps d'une requête API où les sauts de ligne ne sont pas souhaités.
Questions fréquentes
Anecdote — Pourquoi les fichiers de configuration sont écrits en YAML mais les outils réclament du JSON
Le YAML est largement utilisé pour les fichiers de configuration édités directement par des humains — Kubernetes, docker-compose, workflows GitHub Actions, playbooks Ansible — grâce à sa lisibilité : les commentaires sont autorisés et les guillemets sont pour la plupart facultatifs. Le JSON, en revanche, possède une spécification restreinte et sans ambiguïté, facile à traiter mécaniquement par les programmes, ce qui en a fait le format standard pour l'échange de données des API et des outils en ligne de commande comme jq.
La conversion de YAML en JSON comble ce fossé entre « les humains écrivent du YAML, les outils veulent du JSON ». Les manifestes Kubernetes en particulier peuvent atteindre plusieurs centaines de lignes, et `grep` seul atteint vite ses limites lorsqu'il s'agit de retrouver une valeur précise. En convertissant d'abord en JSON puis en interrogeant avec jq, on peut extraire exactement la valeur recherchée avec un chemin tel que `.spec.containers[].image`.
Cela dit, la spécification complète de YAML (YAML 1.2) est très vaste et couvre des fonctionnalités avancées comme la réutilisation de valeurs via les ancres et alias, les flux multi-documents et les scalaires en bloc pour les chaînes multilignes. Cet outil laisse volontairement de côté toute cette étendue et se concentre sur le « sous-ensemble commun » des mappings, séquences et scalaires de base qui apparaît le plus souvent en pratique, gardant ainsi une implémentation simple et sans dépendance externe.