ZonoTools

Comment convertir JSON en YAML (guide étape par étape)

By ZonoTools7 min read

Pourquoi convertir JSON en YAML?

Lisibilité: YAML supprime les accolades et les guillemets lourds afin que les paramètres imbriqués se lisent comme un plan, ce qui est plus facile pour les humains qui examinent les différences Git.

Utilisation de la configuration: Les pipelines CI, les manifestes Kubernetes et les configurations d'application sont souvent créés au format YAML. Lorsque votre source de vérité est JSON (exportation API, sortie du générateur ou appareils), vous convertissez une fois à la limite au lieu de réécrire manuellement.

Si vous ne savez pas quel format correspond à quel endroit, parcourez d'abord JSON vs YAML: differences and use cases: ce guide se concentre sur comment convertir JSON en yaml, et non sur le choix d'une religion.

Méthode 1: utiliser un outil en ligne (le plus rapide)

ZonoTools exécute JSON to YAML dans le navigateur: collez JSON, copiez YAML. Le traitement reste local, ce qui est raisonnable lorsque les charges utiles incluent des noms d'hôte internes ou des espaces réservés de secrets que vous ne souhaitez pas télécharger ailleurs.

Étapes: (1) Validez d'abord JSON avec JSON Validator si le collage provient de journaux ou de Slack. (2) Collez dans JSON vers YAML. (3) Copiez YAML et vérifiez éventuellement avec YAML Validator avant de valider.

Pour une sortie liée au cluster, associez le résultat avec Kubernetes JSON→YAML examples afin de supprimer les champs réservés au serveur après la conversion.

Méthode 2: utiliser Python

Installez PyYAML (pip install pyyaml), puis chargez JSON et videz YAML avec un style stable:

sort_keys=Falsepréserve l'ordre des clés de JSON;default_flow_style=Falseprivilégie le bloc YAML par rapport aux blobs{}/[]en ligne.

python
import JSON import yaml with open("input.JSON", encoding="utf-8") as f: data = JSON.load(f) with open("output.yaml", "w", encoding="utf-8") as f: yaml.safe_dump( data, f, sort_keys=False, default_flow_style=False, allow_unicode=True, )

Méthode 3: Utilisation des outils CLI

yq peut lire JSON et émettre YAML (les indicateurs varient légèrement selon la version – yq de Mike Farah est largement utilisé). jq n'émet que du JSON; associez jq à JSON rangé, puis yq à YAML:

Épinglez les versions de l’outil dans CI afin que les indicateurs restent stables sur les ordinateurs portables et les coureurs.

bash
# JSON → YAML yq -p=JSON -o=yaml < input.JSON > output.yaml # Normalize messy JSON first, then convert jq . messy.JSON | yq -p=JSON -o=yaml > output.yaml

Erreurs courantes

Indentation: L'imbrication YAML est sensible aux espaces: les tabulations par rapport aux espaces ou la dérive d'une colonne recâblent l'arborescence. Préférez deux espaces, interdisez les onglets dans.yamllintou editorconfig et reconvertissez à partir de JSON au lieu de faire glisser les marqueurs de liste à la main.

Types de données: YAML peut interpréter les variantesyes, les dates nues ounulldifféremment de ce à quoi s'attend votre consommateur JSON: citez les scalaires qui doivent rester des chaînes. Liste complète des symptômes et correctifs:Common JSON to YAML conversion errors.

En résumé: choisissez ZonoTools JSON to YAML lorsque vous ne souhaitez aucune configuration; utilisez Python ou yq lorsque la conversion doit se dérouler dans des scripts ou des pipelines, puis validez la sortie à chaque fois.