YAML
Convertisseur YAML
Convertir entre YAML et JSON dans les deux sens.
À propos de YAML et JSON
YAML et JSON décrivent les mêmes structures — dictionnaires, listes, chaînes, nombres, booléens — avec une ponctuation différente. YAML repose sur l'indentation et s'écrit à la main ; JSON est explicite et c'est ce que consomment réellement la plupart des API et bibliothèques. La conversion est essentiellement mécanique, à ceci près que YAML possède des fonctionnalités, comme les commentaires et les ancres, que JSON ne peut tout simplement pas exprimer.
Les règles de typage de YAML sont plus étroites qu'il n'y paraît. Seuls true/false (et leurs variantes comme True ou TRUE) sont analysés comme des booléens — yes, no, on et off restent de simples chaînes, contrairement à certains anciens analyseurs YAML qui les traitaient aussi comme des booléens, un écart connu en ligne sous le nom de « problème norvégien », car le code pays NO pouvait silencieusement devenir false. Une surprise plus fréquente ici concerne la précision : les nombres JSON sont des flottants IEEE-754 double précision, donc un entier 64 bits au-delà de 2^53 peut perdre un chiffre ou deux dès la conversion, alors même que la valeur YAML d'origine était exacte.
Où vous le rencontrerez
- Transformer un manifeste Kubernetes ou un docker-compose en JSON pour un script
- Coller une réponse d'API dans un fichier de configuration attendant du YAML
- Vérifier qu'une définition de pipeline CI est interprétée comme prévu
- Comparer deux formats de configuration lors du passage d'un outil à un autre
Questions fréquentes
Que deviennent mes commentaires ?
Ils sont perdus. JSON n'a pas de syntaxe de commentaire : convertir du YAML en JSON supprime définitivement chaque ligne commençant par #. Conservez l'original YAML si les commentaires comptent.
Les ancres et alias sont-ils pris en charge ?
Oui, et ils sont développés en la valeur qu'ils désignent, car JSON ne sait pas représenter une référence. Les alias qui pointent vers d'autres alias grossissent très vite : les conversions qui produiraient un document démesuré sont donc refusées plutôt que tentées.
Mes données sont-elles stockées ?
Non. La conversion se fait sur le serveur pour cette seule requête ; rien n'est ensuite journalisé ni conservé.
Pourquoi mon grand entier a-t-il légèrement changé après conversion en JSON ?
JSON représente tous les nombres sous forme de flottants IEEE-754 double précision — le même type numérique que JavaScript —, qui ne peuvent représenter exactement les entiers que jusqu'à 2^53 (9 007 199 254 740 991). Une valeur YAML telle qu'un identifiant de base de données 64 bits ou un identifiant « snowflake » à la Discord peut dépasser ce seuil, et sa conversion en nombre JSON l'arrondit silencieusement. Si la précision exacte compte, gardez ces valeurs entre guillemets comme chaînes YAML avant de convertir, afin qu'elles passent en chaînes JSON plutôt qu'en nombres.