Formateur YAML

Formatez du YAML, ou convertissez entre YAML et JSON — instantanément, dans votre navigateur.

Cette page a été traduite de l'anglais avec l'aide de l'IA, puis vérifiée par rapport à l'original. Lire la version anglaise

  • Gratuit — Aucune inscription requise
  • Instantané — Les résultats s'affichent au fur et à mesure
  • Privé — Traité dans votre navigateur

YAML est sensible aux espaces, ce qui le rend agréable à lire et impitoyable à modifier. L’outil ci-dessus fait trois choses : il remet votre YAML en forme canonique, le convertit en JSON et reconvertit du JSON en YAML. Tout se passe dans votre navigateur, si bien qu’un manifeste Kubernetes ou un fichier de CI contenant des secrets ne quitte jamais votre machine.

Comment ça marche

Choisissez un mode, collez votre document et sélectionnez une indentation de 2 ou 4 espaces.

  • Formater le YAML analyse le document puis le resérialise. L’indentation, les guillemets et le style des listes sont normalisés, et les différentes façons d’écrire une même valeur se réduisent à une seule.
  • YAML → JSON analyse le YAML et produit du JSON avec l’indentation choisie. Pratique pour passer un fichier de configuration à un outil qui ne comprend que le JSON, et pour voir exactement ce qu’un parseur comprend de votre YAML.
  • JSON → YAML fait l’inverse : c’est le moyen le plus rapide de rendre relisible, dans une pull request, un gros bloc de JSON généré.

L’analyse repose sur un parseur YAML 1.2 conforme à la spécification. Les erreurs remontent donc sous forme de vrais messages du parseur, avec ligne et colonne, et non d’un vague « entrée invalide ». Ce message d’erreur est souvent ce que l’outil produit de plus utile.

Notez que le formatage est un aller-retour par le modèle de données, et non une transformation du texte. Cela a une conséquence qu’il vaut mieux connaître d’emblée : les commentaires disparaissent. Si ceux de votre fichier comptent (et dans un fichier Kubernetes ou de CI, c’est généralement le cas), servez-vous du mode formatage pour vérifier la structure, puis reportez les corrections à la main dans l’original.

Les pièges de YAML

L’indentation se fait avec des espaces. Les tabulations sont interdites dans l’indentation YAML, point final. Un éditeur configuré pour insérer des tabulations produit un fichier qui échoue à l’analyse, avec une erreur qui pointe au mauvais endroit.

Le problème norvégien. YAML 1.1 traitait yes, no, on, off, y et n comme des booléens : une liste de pays contenant NO était donc lue comme false. YAML 1.2 a supprimé ce comportement, mais beaucoup de parseurs en production implémentent encore celui de la 1.1. Mettez entre guillemets les scalaires ambigus : "NO", "on", "1.0".

Les numéros de version sans guillemets. 1.0 est un flottant, 1.10 est le flottant 1.1, et 1.0.0 est une chaîne. Les tags d’image et les versions épinglées doivent toujours être entre guillemets.

Les zéros en tête. Les parseurs plus anciens peuvent lire 08 comme un octal invalide ; "08" ne pose aucun problème. Il en va de même pour tout ce qui ressemble à un nombre mais sert d’identifiant : numéros de téléphone, codes postaux, références de compte.

Les clés en double. La spécification les déclare invalides, mais beaucoup de parseurs conservent silencieusement la dernière. Dans un long fichier, une clé répétée est un défaut qu’aucun message d’erreur ne vous signalera.

Passer un fichier par YAML → JSON règle toutes ces questions d’un coup, car JSON ne laisse aucune ambiguïté : ce qui apparaît comme true ou 1.1 dans la sortie JSON est exactement ce que votre parseur a lu.

YAML ou JSON ?

Les deux expriment le même modèle de données ; le choix dépend donc de qui va les lire. YAML s’adresse aux fichiers que des humains écrivent et relisent : ses commentaires, ses scalaires en bloc et ses ancres existent pour cela. JSON s’adresse aux machines : pas de commentaires, aucune ambiguïté, une seule façon d’écrire chaque valeur, et un parseur dans tous les langages. Tout document JSON est du YAML 1.2 valide. C’est pourquoi la conversion est sans perte dans ce sens, et seulement sans perte de structure dans l’autre.

Où on le rencontre

YAML est le langage de configuration du monde des conteneurs et de la CI, et la plupart du temps, quand vous tombez dessus, c’est pour déboguer un problème d’indentation dans le fichier de quelqu’un d’autre. Réseaux et volumes avec Docker Compose détaille la structure d’un fichier Compose, Les fondamentaux de Kubernetes couvre les manifestes et le modèle d’apply, et Pipelines Jenkins et Jenkinsfile traite de la définition des pipelines. Côté application, Starters, propriétés et profils explique comment application.yml est résolu et surchargé.

Pour du JSON seul, le formateur JSON est l’outil le plus direct ; pour du balisage, le formateur HTML.

FAQ

Quelles fonctionnalités YAML sont prises en charge ?
L'analyse suit la spécification YAML 1.2, y compris les styles bloc et flux, les ancres/alias, et les chaînes multi-lignes.
Pourquoi ma valeur qui ressemble à un booléen change-t-elle ?
YAML interprète des mots non entre guillemets comme yes, no, true et off comme des booléens. Mettez la valeur entre guillemets (par exemple "yes") si vous voulez qu'elle soit traitée comme du texte brut.
Mes données sont-elles envoyées quelque part ?
Non. L'analyse et le formatage s'effectuent entièrement dans votre navigateur.