Convertisseur JSON vers YAML
Convertissez du JSON en YAML et du YAML en JSON.
À propos de cet outil
Collez du JSON ou du YAML et obtenez l’autre format. Le sens est détecté automatiquement, et les erreurs d’analyse indiquent la ligne en cause. Pratique pour les manifestes Kubernetes, les fichiers Docker Compose et les configurations de CI.
Mode d’emploi
- Collez du JSON ou du YAML dans la zone Entrée.
- Laissez le sens sur Détecter, ou forcez JSON vers YAML ou YAML vers JSON.
- Choisissez une indentation de 2 ou 4 espaces.
- Copiez le résultat, ou cliquez sur Utiliser le résultat comme entrée pour le reconvertir.
Questions
- YAML est-il un sur-ensemble de JSON ?
- En pratique, oui : depuis YAML 1.2, presque tout document JSON valide est aussi du YAML valide. L’inverse n’est pas vrai, car YAML a des commentaires, des ancres et des chaînes multilignes que JSON ne peut pas exprimer.
- Que deviennent les commentaires YAML lors de la conversion en JSON ?
- Ils sont supprimés, car JSON n’a pas de commentaires. Gardez le fichier YAML comme source de référence si les commentaires comptent.
- Puis-je convertir un fichier contenant plusieurs documents YAML séparés par --- ?
- Oui. Chaque document devient un élément d’un tableau JSON, et la ligne d’état indique combien de documents ont été trouvés.
- Pourquoi « no » devient-il false ?
- Les anciens analyseurs YAML 1.1 traitent des mots comme yes, no, on et off comme des booléens. Cet outil applique les règles de YAML 1.2, où seuls true et false sont des booléens, mais mettez ces valeurs entre guillemets si d’autres outils doivent lire le fichier.
- Les dates YAML sont-elles converties en dates JSON ?
- JSON n’a pas de type date : des valeurs comme 2026-01-12 ou 2026-01-12T10:00:00Z restent de simples chaînes, ce qu’attendent la plupart des programmes. Certains parseurs YAML 1.1, comme PyYAML, transforment ces mêmes valeurs en objets date : le résultat du chargement du fichier peut donc varier selon l’outil.
- Pourquoi un mode de fichier comme 0755 devient-il 755 ?
- Selon les règles de YAML 1.2, un zéro initial ne signifie pas octal : 0755 est donc le nombre décimal 755. L’octal nécessite le préfixe 0o : 0o755 devient 493. Les anciens outils YAML 1.1 lisent 0755 comme de l’octal, donc mettez les modes de fichier entre guillemets, comme dans mode: "0755", dès que l’outil qui lit le fichier compte.
- Pourquoi certaines chaînes sont-elles entre guillemets dans le YAML produit ?
- Les chaînes qui seraient relues comme un autre type reçoivent des guillemets, pour que la valeur survive à un aller-retour. La chaîne JSON "true" devient "true" en YAML, et non le booléen true, et il en va de même pour "123", "null", "1.10" et pour un texte contenant un deux-points suivi d’une espace. Les chaînes ordinaires restent sans guillemets.
JSON ou YAML : lequel utiliser ?
JSON et YAML décrivent les mêmes données : objets, tableaux, chaînes, nombres, booléens et null. JSON est strict et rapide à analyser, ce qui en fait le format par défaut des API, de package.json et des données échangées entre programmes. YAML est conçu pour des fichiers édités à la main : peu d’accolades ou de guillemets, des commentaires avec #, et des chaînes sur plusieurs lignes. C’est pourquoi les manifestes Kubernetes, les fichiers Docker Compose, les workflows GitHub Actions et les playbooks Ansible sont écrits en YAML.
Une règle pratique : quand un programme écrit un fichier et qu’un autre programme le lit, utilisez JSON. Quand une personne maintient le fichier, YAML est plus facile à lire et à relire. Beaucoup d’outils acceptent les deux, et kubectl apply prend l’un ou l’autre format. Un convertisseur JSON vers YAML est pratique quand une CLI ou une API vous renvoie du JSON, par exemple kubectl get deployment web -o json, et que vous voulez une copie YAML lisible à conserver dans Git.
Comment corriger les erreurs d’indentation et d’analyse YAML ?
YAML utilise l’indentation pour exprimer la structure, donc la plupart des erreurs d’analyse sont des problèmes d’espaces. Les tabulations sont totalement interdites pour l’indentation, et le parseur signale « Tabs are not allowed as indentation ». Les éléments d’une même liste et les clés d’un même mapping doivent commencer à la même colonne, et une valeur imbriquée doit être plus indentée que sa clé. L’erreur indique la ligne et la colonne où l’analyse s’est arrêtée, ce qui correspond généralement à la vraie erreur ou se situe juste après.
Un deux-points suivi d’une espace dans une valeur sans guillemets est une autre erreur YAML classique. url: http://example.com fonctionne, mais title: Note: read this échoue, car le second deux-points ouvre un mapping imbriqué. Mettez ces valeurs entre guillemets, comme dans title: "Note: read this". Les valeurs qui commencent par @ ou par un backtick doivent aussi être entre guillemets, tout comme les chaînes qui ressemblent à des nombres, par exemple version: "1.10", qui deviendrait sinon le nombre 1.1.
Que deviennent les ancres YAML lors de la conversion en JSON ?
YAML permet de définir un bloc une seule fois avec une ancre comme &defaults et de le réutiliser ailleurs avec l’alias *defaults. JSON n’a pas d’équivalent : lors de la conversion de YAML vers JSON, chaque alias est donc remplacé par une copie complète de la valeur ancrée. Le JSON est correct mais plus long, et le lien entre les copies est perdu. Les clés de fusion écrites <<: *defaults ne font pas partie de YAML 1.2 et restent dans le JSON sous la forme d’une clé nommée <<.
Avant de committer un fichier converti, vérifiez l’aller-retour. Cliquez sur Utiliser le résultat comme entrée pour reconvertir le résultat, puis comparez-le à l’original dans le Comparateur de textes. Les valeurs doivent rester identiques, tandis que la présentation peut différer : les commentaires disparaissent, les ancres sont développées et les guillemets peuvent changer. Kubernetes et la plupart des guides de style YAML indentent avec 2 espaces, la valeur par défaut ici, et 4 espaces sont disponibles pour les équipes qui le préfèrent.
Quelque chose ne fonctionne pas, ou un résultat semble faux ? Signaler un problème avec cet outil