Convertisseur JSON vers YAML
Transformez du JSON en YAML propre et lisible pour Kubernetes, Docker Compose, GitHub Actions ou Ansible, avec un contrôle total sur l’indentation, le style et les guillemets.
Fonctionne dans le navigateurSans inscriptionAucun envoi de données
Comment utiliser : JSON vers YAML
- Collez du JSON dans la zone de gauche ou ouvrez un fichier
.json. - Le YAML apparaît à droite pendant la saisie.
- Choisissez l’indentation (2 ou 4 espaces) et le style : bloc (une clé par ligne) ou flow (
{a: 1}/[x, y]) à partir d’un niveau d’imbrication donné. - Choisissez un style de guillemets et cochez Trier les clés pour un ordre alphabétique.
- Copiez ou téléchargez le YAML. Un JSON invalide est signalé avec sa ligne, sa colonne et la cause probable.
Pourquoi convertir du JSON en YAML ?
Le JSON est idéal pour les machines et les API, mais le YAML est plus facile à lire et à modifier pour les humains : pas d’accolades, pas de guillemets obligatoires, et des commentaires possibles. La plupart des outils d’infrastructure, dont Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI et Ansible, se configurent en YAML, alors que les données de départ (sortie d’API, kubectl get -o json, état Terraform) sont souvent en JSON.
Style bloc ou flow
Le style bloc place chaque clé et chaque élément de liste sur sa propre ligne ; c’est le choix habituel pour les fichiers de configuration. Le style flow utilise des {} et [] inline, comme le JSON, et garde compactes les petites structures terminales. « Flow dès le niveau 2 » garde les deux premiers niveaux en style bloc et met en ligne tout ce qui est plus profond, ce qui convient bien aux longues listes de petits objets comme les ports ou les variables d’environnement.
Guillemets sûrs
Les chaînes qu’un parseur YAML pourrait mal interpréter sont automatiquement mises entre guillemets : des valeurs comme 'no', 'on', '1.0', 'null', les chaînes commençant par * ou &, et celles contenant : . Choisissez Toujours simples ou Toujours doubles si votre guide de style exige des guillemets partout.
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: nosignifiefalse, et le code pays de la NorvègeNOdisparaît. Il en va de même pouryes,on,off,yetn. YAML 1.2 ne considère comme booléens quetrueetfalse. - Nombres octaux :
0755est octal en 1.1 mais décimal en 1.2, qui utilise0o755. Mettez les permissions de fichiers entre guillemets par sécurité. - Nombres sexagésimaux : en 1.1,
22:30peut ê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
La conversion est-elle sans perte ?
Pourquoi certaines chaînes sont-elles entre guillemets et d’autres non ?
'yes', '123' ou des chaînes avec des caractères spéciaux. Tout le reste est laissé tel quel pour la lisibilité.Puis-je ajouter des commentaires au résultat ?
# comments au YAML après l’avoir copié.