Convertir YAML en JSON (et éviter les erreurs d’indentation)

Depuis YAML 1.2, tout document JSON est un YAML valide. Convertissez la configuration YAML en JSON et faites attention aux pièges d’indentation et d’inférence de types.

YAML et JSON sont parents

YAML 1.2 est un sur-ensemble strict de JSON, donc tout document JSON est déjà du YAML valide. Convertir du YAML en JSON revient surtout à transformer une structure basée sur l’indentation en accolades et crochets.

Règles d’indentation

YAML interdit les tabulations pour l’indentation — utilisez des espaces et gardez les clés sœurs à la même profondeur. Une tabulation parasite ou une clé mal alignée est l’erreur de parsing YAML la plus fréquente.

Le problème norvégien

Sans guillemets, NO, yes, on et off peuvent être lus comme des booléens par certains parsers : le code pays NO devient false. Mettez ces valeurs entre guillemets pour qu’elles restent des chaînes.

Convertir en sécurité

Validez d’abord le YAML, puis convertissez. Encadrez les scalaires ambigus avec des guillemets et vérifiez que les nombres, dates et valeurs commençant par un zéro gardent le type attendu.

Flux YAML multi-documents

Un seul fichier YAML peut contenir plusieurs documents séparés par '---'. JSON n’a pas d’équivalent — convertissez chaque document indépendamment et, si un outil aval doit tous les recevoir en une fois, encapsulez-les dans un tableau JSON. Les manifests Kubernetes sont le cas le plus fréquent.

Anchors et aliases

Les & anchor et * alias de YAML permettent de réutiliser un nœud par référence ; JSON n’a pas d’alias. Un convertisseur sûr résout chaque alias en une copie du nœud ancré, ce qui développe le document. Attention : refaire le chemin inverse vers YAML perd le partage initial.

Quand YAML perd en fidélité

Les commentaires, les annotations comme !!binary, les tags personnalisés, la différence entre style block et flow, ainsi que l’ordre des clés, sont perdus quand YAML devient JSON. Pour un simple échange de données, ce n’est pas un souci ; pour une configuration éditée à la main que vous rééditerez, gardez le YAML comme source de vérité.