Veel moderne tools, met name in configuratiebeheer en Infrastructure as Code (IaC) ruimtes, gebruiken JSON of YAML-bestanden om configuratiegegevens op te slaan. Als je gegevens van YAML naar JSON-formaat wilt converteren, dan is dit artikel voor jou.
In dit artikel leer je verschillende manieren om gegevens van YAML naar JSON-formaat om te zetten, inclusief scripting in Python, PowerShell en Go.
Vereisten
Als je de voorbeelden in deze tutorial wilt volgen, zorg er dan voor dat je
- A code editor. This article will use Visual Studio Code version 1.55.1. Feel free to use any code editor you want.
- Om te beginnen met het omzetten van YAML naar JSON, heb je een voorbeeld YAML-inhoud nodig. Kopieer de onderstaande inhoud naar een nieuw bestand genaamd besturingssystemen.yml. Sla het YAML-bestand op in je werkmap.
Gebruik van Python om YAML naar JSON te converteren
Python is een uitstekende taal voor automatisering. Maar wist je dat je de mogelijkheden van Python kunt uitbreiden en het kunt gebruiken om documenten van YAML naar JSON te converteren? En je hoeft slechts een paar stappen uit te voeren om snel YAML naar JSON te converteren.
De voorbeeld in deze sectie vereist dat je Python 3.9 en PIP hebt geïnstalleerd (de laatste versie op het moment van schrijven is 21.0.1).
YAML-ondersteuning toevoegen aan Python
Python heeft standaard geen ondersteuning voor YAML. Dat betekent dat Python standaard geen YAML-documenten kan lezen of interpreteren. Om YAML-ondersteuning aan Python toe te voegen, moet je eerst de PyYAML-module installeren.
Om de PyYAML-module te installeren, moet je het pip
-commando uitvoeren, wat de pakketinstallateur is voor Python. Volg hiervoor deze stappen.
Ten eerste, open je voorkeurscommando-interpreter, zoals de opdrachtprompt of PowerShell. Het pip
-commando zou in beide moeten werken. Dit voorbeeld gebruikt PowerShell.
Vervolgens voer je het onderstaande commando uit in PowerShell. Dit commando installeert de PyYAML-module.
Zoals je kunt zien in de onderstaande schermafbeelding, heeft pip
de nieuwste versie van PyYAML geïnstalleerd (5.4.1 op het moment van schrijven).

Het Conversiescript Schrijven
Nu je de vereiste module (PyYAML) hebt geïnstalleerd, ben je klaar om je conversiescript te schrijven. Volg deze stappen om het YAML naar JSON Python-script te maken.
1. Open je code-editor en maak een nieuw bestand genaamd convert-os.py in je werkdirectory. Dit bestand is je script.
2. Kopieer de onderstaande code en plak het in je lege convert-os.py-bestand. Dit script leest de YAML-inhoud van operating-systems.yml, converteert de inhoud naar JSON-formaat, en schrijft de JSON-uitvoer naar het python_operating-systems.json-bestand.
3. Sla het convert-os.py-script op.
Uitvoeren van het Conversiescript
Na het maken van het conversiescript is het tijd om het te testen. Om het YAML naar JSON Python-script uit te voeren, volg je deze stappen:
1. Open een terminalvenster. Dit artikel maakt gebruik van PowerShell, maar de opdrachtprompt (CMD) zou net zo goed werken.
2. Kopieer de onderstaande opdracht, plak deze in PowerShell en druk op Enter. Deze opdracht voert het uitvoerbare programma Python
uit om het script convert-os.py aan te roepen dat je in het vorige gedeelte hebt gemaakt.
Na het uitvoeren van de opdracht zou je een vergelijkbare uitvoer op het scherm moeten zien en dezelfde uitvoer moet opgeslagen zijn in het bestand c:\temp\python_operating-systems.json.

3. Als laatste stap, open het JSON-bestand met de naam python_operating-systems.json dat het convert-os.py Python-script zou moeten hebben aangemaakt. Om het bestand bijvoorbeeld in Notepad te openen, voer je de onderstaande opdracht uit in PowerShell.

Gebruik van PowerShell om YAML naar JSON om te zetten
PowerShell is in staat om tekstbestanden te wijzigen en objecten naar verschillende formaten om te zetten, waaronder JSON. Omdat PowerShell uitbreidbaar is, kun je PowerShell gebruiken om YAML naar JSON-formaat om te zetten met de juiste module.
YAML-ondersteuning toevoegen aan PowerShell
PowerShell heeft ingebouwde ondersteuning voor het verwerken van JSON-content, maar niet voor YAML. Gelukkig is er een module die PowerShell uitbreidt om YAML-bestanden te ondersteunen. Deze module heet PowerShell-yaml, en de nieuwste versie op het moment van schrijven is 0.4.2. Volg deze stappen om de module te installeren.
1. Open een PowerShell-sessie op je computer.
2. Kopieer de onderstaande opdracht, plak deze in PowerShell en druk op Enter. Deze opdracht maakt gebruik van de Install-Module
cmdlet om de PowerShell-yaml module te installeren.
3. Na het installeren van de module worden er twee nieuwe cmdlets beschikbaar in PowerShell als onderdeel van de PowerShell-yaml module. Deze nieuwe cmdlets zijn:
ConvertFrom-Yaml
– de cmdlet om YAML-gegevens naar een hash-tabel om te zetten.
ConvertTo-Yaml
– de cmdlet om hash-tabel objecten naar YAML-gegevens om te zetten.
Om te bevestigen dat beide cmdlets beschikbaar zijn in PowerShell, voer de onderstaande opdracht uit in PowerShell.
Zoals je hieronder kunt zien, heeft de Get-Command
cmdlet de cmdlets van de PowerShell-yaml module vermeld.

Het schrijven van het conversiescript
Volg deze instructies om het YAML naar JSON conversie PowerShell-script te maken.
1. Open je code-editor en maak een nieuw bestand genaamd convert-os.ps1 in je werkdirectory.
2. Kopieer de onderstaande code en plak deze in het lege convert-os.ps1 bestand. De onderstaande code leest het bestand operating-systems.yml en converteert het naar JSON. Zodra het in JSON is, wordt het vervolgens opgeslagen in het bestand PowerShell_operating-systems.json.
3. Sla het bestand convert-os.ps1 op.
Het Uitvoeren van het Conversiescript
Nu je je conversiescript hebt gemaakt, is de volgende stap om het uit te voeren om YAML naar JSON te converteren. Volg deze stappen om het PowerShell-conversiescript uit te voeren.
- Open een PowerShell-venster als je er nog geen hebt geopend.
2. Kopieer de onderstaande opdracht, plak deze in PowerShell en druk op Enter. Deze opdracht roept het convert-os.ps1
script aan dat je hebt gemaakt in de vorige sectie.
3. Na het uitvoeren van het script, open het JSON-uitvoerbestand C:\temp\PowerShell_besturingssystemen.json dat het convert-os.ps1-script heeft aangemaakt in de vorige stap. Om dit te doen, voer je de onderstaande opdracht uit in PowerShell om het PowerShell_besturingssystemen.json te openen in notepad.

Gebruik Go om YAML naar JSON om te zetten
Python en PowerShell zijn beide hoog-niveau talen. Het feit dat ze hoog-niveau zijn, maakt het schrijven van scripts eenvoudiger, maar neemt ook een beetje controle weg. Aan de andere kant is Go een laag-niveau taal, wat het importeren van YAML-gegevens complexer maakt.
Het voorbeeld in deze sectie zal Go gebruiken. De nieuwste versie op het moment van schrijven is go1.16.3. Als je nog geen Go hebt, raadpleeg dan de download en installatie pagina om het op je computer te installeren.
YAML-ondersteuning toevoegen aan Go
Net als PowerShell en Python maakt JSON-ondersteuning deel uit van de kernbibliotheken van Go, maar YAML niet. Om YAML-ondersteuning toe te voegen in Go, moet je eerst het YAML.v3 pakket installeren met behulp van het go get
commando. Om het YAML.v3 pakket te installeren:
Eerst, op je computer, open je de opdrachtshell die je wilt gebruiken, zoals de opdrachtprompt of PowerShell. Dit voorbeeld gebruikt PowerShell.
Next, kopieer de onderstaande opdracht en voer deze uit in PowerShell. Deze opdracht zal het pakket met de naam gopkg.in/yaml.v3 downloaden en installeren.

Het schrijven van het conversiescript
Volg deze instructies om het Go-script voor de conversie van YAML naar JSON te maken.
1. Open je code-editor en maak een nieuw bestand genaamd convert-os.go in je werkmap.
2. Kopieer de onderstaande code en plak deze in het lege bestand convert-os.go. De code importeert de vereiste pakketten, definieert enkele geheugenstructuren, importeert het YAML-bestand en converteert het naar JSON voordat het naar een JSON-bestand genaamd c:\temp\go_operating-systems.json wordt geschreven.
3. Bewaar het bestand convert-os.go.
Het Uitvoeren van het Conversiescript
Het uitvoeren van Go-scripts gebeurt met het go run
commando gevolgd door de bestandsnaam van het script. Om het YAML naar JSON conversiescript uit te voeren, volg je deze stappen.
1. Open op je computer de opdrachtshell die je wilt gebruiken. Op Windows werkt go
zowel in de opdrachtprompt als in PowerShell. In dit voorbeeld gebruiken we PowerShell om go
uit te voeren.
2. Zodra je in PowerShell bent, kopieer je de onderstaande opdracht en voer je deze uit in PowerShell. Deze opdracht zal het go run
commando oproepen om het c:\temp\convert-os.go script uit te voeren.

3. Nadat het script is uitgevoerd, open je het uitvoerbestand C:\temp\Go_operating-systems.json dat is aangemaakt door het convert-os.go script in de vorige stap. Dit voorbeeld opent het bestand Go_operating-systems.json in Kladblok.

Conclusie
In dit artikel heb je geleerd hoe je YAML-gegevens en -bestanden naar JSON kunt converteren met scripts in Python, PowerShell en Go. Nu je verschillende manieren hebt geleerd om YAML naar JSON te converteren, welke manier denk je dat je vaker zult gebruiken?