Beaucoup d’outils modernes, en particulier dans la gestion de la configuration et les espaces Infrastructure as Code (IaC), utilisent des fichiers JSON ou YAML pour stocker les données de configuration. Si vous avez besoin de convertir des données du format YAML au format JSON, cet article est pour vous.
Dans cet article, vous apprendrez plusieurs façons de convertir des données YAML au format JSON, y compris le script en Python, PowerShell et Go.
Prérequis
Si vous souhaitez suivre les exemples de ce tutoriel, assurez-vous d’avoir
- A code editor. This article will use Visual Studio Code version 1.55.1. Feel free to use any code editor you want.
- Pour commencer à convertir le YAML en JSON, vous avez besoin d’un contenu YAML d’exemple. Copiez le contenu ci-dessous dans un nouveau fichier appelé operating-systems.yml. Enregistrez le fichier YAML dans votre répertoire de travail.
Utilisation de Python pour convertir YAML en JSON
Python est un excellent langage à utiliser pour l’automatisation. Mais saviez-vous que vous pouvez étendre les capacités de Python et l’utiliser pour convertir des documents de YAML à JSON ? Et vous n’avez besoin que d’effectuer quelques étapes et commencez à convertir le YAML en JSON en un rien de temps.
L’exemple dans cette section nécessite que vous ayez installé Python 3.9 et PIP (la dernière version à ce jour est la 21.0.1).
Ajout du support YAML à Python
Python n’a pas de support natif pour YAML. En d’autres termes, Python ne peut pas lire ou interpréter les documents YAML par défaut. Pour ajouter le support YAML à Python, vous devez d’abord installer le module PyYAML.
Pour installer le module PyYAML, vous devrez exécuter la commande pip
, qui est l’installeur de paquets pour Python. Pour ce faire, suivez ces étapes.
Tout d’abord, ouvrez votre interpréteur de commandes préféré, comme l’invite de commande ou PowerShell. La commande pip
devrait fonctionner dans l’un ou l’autre. Cet exemple utilise PowerShell.
Ensuite, exécutez la commande ci-dessous dans PowerShell. Cette commande installe le module PyYAML.
Comme vous pouvez le voir dans la capture d’écran ci-dessous, pip
a installé la dernière version de PyYAML (5.4.1 à ce jour).

Écriture du script de conversion
Maintenant que vous avez installé le module requis (PyYAML), vous êtes prêt à écrire votre script de conversion. Pour créer le script Python YAML vers JSON, suivez ces étapes.
1. Ouvrez votre éditeur de code et créez un nouveau fichier appelé convert-os.py dans votre répertoire de travail. Ce fichier est votre script.
2. Copiez le code ci-dessous et collez-le dans votre fichier convert-os.py vide. Ce script lira le contenu YAML de operating-systems.yml, convertira le contenu au format JSON, et écrira la sortie JSON dans le fichier python_operating-systems.json.
3. Enregistrez le script convert-os.py.
Exécution du script de conversion
Après avoir créé le script de conversion, il est temps de le tester. Pour exécuter le script Python de YAML à JSON, procédez comme suit :
1. Ouvrez une fenêtre de terminal. Cet article utilise PowerShell, mais l’invite de commande (CMD) fonctionnerait tout aussi bien.
2. Copiez la commande ci-dessous, collez-la dans PowerShell, et appuyez sur Entrée. Cette commande exécute le programme exécutable Python
pour invoquer le script convert-os.py que vous avez créé dans la section précédente.
Après avoir exécuté la commande, vous devriez voir une sortie similaire à l’image ci-dessous. Comme vous pouvez le voir, la commande a affiché la sortie JSON à l’écran et a sauvegardé la même sortie dans le fichier c:\temp\python_operating-systems.json.

3. Enfin, ouvrez le fichier JSON appelé python_operating-systems.json que le script Python convert-os.py devrait avoir créé. Dans cet exemple, pour ouvrir le fichier dans le bloc-notes, exécutez la commande ci-dessous dans PowerShell.

Utilisation de PowerShell pour convertir YAML en JSON
PowerShell est capable de modifier des fichiers texte et de convertir des objets en plusieurs formats, y compris JSON. Étant donné que PowerShell est extensible, vous pouvez utiliser PowerShell pour convertir le format YAML en JSON avec le bon module.
Ajout de la prise en charge YAML à PowerShell
PowerShell prend en charge intégrée pour la manipulation de contenu JSON, mais pas pour YAML. Heureusement, il existe un module qui étend PowerShell pour prendre en charge les fichiers YAML. Ce module s’appelle PowerShell-yaml, et la dernière version à ce jour est la 0.4.2. Suivez ces étapes pour installer le module.
1. Sur votre ordinateur, ouvrez une session PowerShell.
2. Copiez la commande ci-dessous, collez-la dans PowerShell et appuyez sur Entrée. Cette commande utilise la cmdlet Install-Module
pour installer le module PowerShell-yaml.
3. Après avoir installé le module, deux nouvelles cmdlets seront disponibles dans PowerShell en tant que partie du module PowerShell-yaml. Ces nouvelles cmdlets sont :
ConvertFrom-Yaml
– la cmdlet pour convertir les données YAML en une table de hachage.
ConvertTo-Yaml
– la cmdlet pour convertir des objets de table de hachage en données YAML.
Pour confirmer que les deux cmdlets sont disponibles dans PowerShell, exécutez la commande ci-dessous dans PowerShell.
Comme vous pouvez le voir ci-dessous, la cmdlet Get-Command
a répertorié les cmdlets du module PowerShell-yaml.

Rédaction du script de conversion
Pour créer le script PowerShell de conversion YAML en JSON, suivez ces instructions.
1. Ouvrez votre éditeur de code et créez un nouveau fichier appelé convert-os.ps1 dans votre répertoire de travail.
2. Copiez le code ci-dessous et collez-le dans le fichier convert-os.ps1. Le snippet de code ci-dessous lit le fichier operating-systems.yml et le convertit en JSON. Une fois en JSON, il enregistre le JSON dans le fichier PowerShell_operating-systems.json.
3. Enregistrez le fichier convert-os.ps1.
Exécution du script de conversion
Maintenant que vous avez créé votre script de conversion, la prochaine étape consiste à l’exécuter pour convertir le YAML en JSON. Pour exécuter le script de conversion PowerShell, suivez ces étapes.
- Ouvrez une fenêtre PowerShell si vous n’en avez pas encore ouverte.
2. Copiez la commande ci-dessous, collez-la dans PowerShell et appuyez sur Entrée. Cette commande invoque le script convert-os.ps1
que vous avez créé dans la section précédente.
3. Après avoir exécuté le script, ouvrez le fichier de sortie JSON C:\temp\PowerShell_systèmes-d’exploitation.json que le script convert-os.ps1 a créé à l’étape précédente. Pour ce faire, exécutez la commande ci-dessous dans PowerShell pour ouvrir le fichier PowerShell_systèmes-d’exploitation.json dans le bloc-notes.

Utilisation de Go pour convertir YAML en JSON
Python et PowerShell sont tous deux des langages de haut niveau. Être de haut niveau rend l’écriture de scripts plus facile mais enlève également un peu de contrôle. En revanche, Go est un langage de bas niveau, ce qui rend l’importation de données YAML plus complexe.
L’exemple de cette section utilisera Go. La dernière version à ce jour est go1.16.3. Si vous n’avez pas encore Go, consultez la page de téléchargement et d’installation pour l’installer sur votre ordinateur.
Ajout de la prise en charge YAML à Go
Comme PowerShell et Python, la prise en charge JSON fait partie des bibliothèques de base de Go, mais ce n’est pas le cas pour YAML. Pour ajouter la prise en charge YAML à Go, vous devez d’abord installer le package YAML.v3 en utilisant la commande go get
. Pour installer le package YAML.v3 :
Tout d’abord, sur votre ordinateur, ouvrez l’invite de commandes que vous souhaitez utiliser, comme l’invite de commandes ou PowerShell. Cet exemple utilise PowerShell.
Ensuite, copiez la commande ci-dessous et exécutez-la dans PowerShell. Cette commande téléchargera et installera le package nommé gopkg.in/yaml.v3.

Écriture du script de conversion
Pour créer le script de conversion YAML vers JSON en Go, suivez ces instructions.
1. Ouvrez votre éditeur de code et créez un nouveau fichier appelé convert-os.go dans votre répertoire de travail.
2. Copiez le code ci-dessous et collez-le dans le fichier convert-os.go vierge. Le code importe les packages nécessaires, définit certaines structures de mémoire, importe le fichier YAML et le convertit en JSON avant de l’écrire dans un fichier JSON appelé c:\temp\go_operating-systems.json.
3. Enregistrez le fichier convert-os.go.
Exécution du script de conversion
L’exécution de scripts Go utilise la commande go run
suivie du nom du script. Pour exécuter le script de conversion YAML en JSON Go, procédez comme suit.
1. Sur votre ordinateur, ouvrez l’invite de commande que vous souhaitez utiliser. Sous Windows, la commande go
fonctionnera soit dans l’invite de commandes, soit dans PowerShell. Cet exemple utilise PowerShell pour exécuter go
.
2. Une fois dans PowerShell, copiez la commande ci-dessous et exécutez-la dans PowerShell. Cette commande invoquera la commande go run
pour exécuter le script c:\temp\convert-os.go.

3. Après avoir exécuté le script, ouvrez le fichier de sortie C:\temp\Go_operating-systems.json que le script convert-os.go a créé à l’étape précédente. Cet exemple ouvre le fichier Go_operating-systems.json dans le bloc-notes.

Conclusion
Dans cet article, vous avez appris comment convertir des données et des fichiers YAML en JSON en utilisant des scripts en Python, PowerShell et Go. Maintenant que vous avez appris différentes façons de convertir YAML en JSON, quelle méthode pensez-vous utiliser le plus ?