Viele moderne Tools, insbesondere im Bereich der Konfigurationsverwaltung und der Infrastruktur als Code (IaC), verwenden JSON- oder YAML-Dateien zur Speicherung von Konfigurationsdaten. Wenn Sie Daten von YAML-Format in JSON-Format konvertieren müssen, dann ist dieser Artikel genau das Richtige für Sie.
In diesem Artikel lernen Sie verschiedene Möglichkeiten zur Konvertierung von YAML-Daten in das JSON-Format kennen, einschließlich Skripting in Python, PowerShell und Go.
Voraussetzungen
Wenn Sie die Beispiele in diesem Tutorial nachvollziehen möchten, stellen Sie sicher, dass Sie
- A code editor. This article will use Visual Studio Code version 1.55.1. Feel free to use any code editor you want.
- Um mit der Konvertierung von YAML zu JSON zu beginnen, benötigen Sie einen Beispiel-YAML-Inhalt. Kopieren Sie den folgenden Inhalt in eine neue Datei namens betriebssysteme.yml. Speichern Sie die YAML-Datei in Ihrem Arbeitsverzeichnis.
Verwenden von Python zur Konvertierung von YAML zu JSON
Python ist eine ausgezeichnete Sprache zur Automatisierung. Aber wussten Sie, dass Sie die Fähigkeiten von Python erweitern und es verwenden können, um Dokumente von YAML in JSON zu konvertieren? Und Sie müssen nur wenige Schritte ausführen, um in kürzester Zeit YAML in JSON zu konvertieren.
Das Beispiel in diesem Abschnitt erfordert, dass Sie Python 3.9 und PIP installiert haben (die neueste Version zum Zeitpunkt dieser Schreibens ist 21.0.1).
Hinzufügen von YAML-Unterstützung zu Python
Python hat standardmäßig keine Unterstützung für YAML. Das bedeutet, dass Python YAML-Dokumente standardmäßig nicht lesen oder interpretieren kann. Um YAML-Unterstützung zu Python hinzuzufügen, müssen Sie zuerst das PyYAML-Modul installieren.
Um das PyYAML-Modul zu installieren, müssen Sie den pip
-Befehl ausführen, der das Paketinstallationsprogramm für Python ist. Befolgen Sie dazu diese Schritte.
Zuerst öffnen Sie Ihren bevorzugten Befehlsinterpreter, wie die Eingabeaufforderung oder PowerShell. Der pip
-Befehl sollte in beiden funktionieren. In diesem Beispiel wird PowerShell verwendet.
Führen Sie als Nächstes den folgenden Befehl in PowerShell aus. Dieser Befehl installiert das PyYAML-Modul.
Wie im Screenshot unten zu sehen ist, hat pip
die neueste Version von PyYAML installiert (zum Zeitpunkt dieses Schreibens 5.4.1).

Das Konvertierungsskript schreiben
Jetzt, da Sie das erforderliche Modul (PyYAML) installiert haben, sind Sie bereit, Ihr Konvertierungsskript zu schreiben. Um das YAML-zu-JSON-Python-Skript zu erstellen, befolgen Sie diese Schritte.
1. Öffnen Sie Ihren Code-Editor und erstellen Sie eine neue Datei namens convert-os.py in Ihrem Arbeitsverzeichnis. Diese Datei ist Ihr Skript.
2. Kopieren Sie den folgenden Code und fügen Sie ihn in Ihre leere convert-os.py-Datei ein. Dieses Skript liest den YAML-Inhalt von operating-systems.yml, wandelt den Inhalt in das JSON-Format um und schreibt die JSON-Ausgabe in die Datei python_operating-systems.json.
3. Speichern Sie das convert-os.py-Skript.
Ausführen des Konvertierungsskripts
Nachdem Sie das Konvertierungsskript erstellt haben, ist es an der Zeit, es zu testen. Um das YAML-zu-JSON-Python-Skript auszuführen, gehen Sie wie folgt vor:
1. Öffnen Sie ein Terminalfenster. Dieser Artikel verwendet PowerShell, aber die Eingabeaufforderung (CMD) funktioniert genauso gut.
2. Kopieren Sie den folgenden Befehl, fügen Sie ihn in PowerShell ein und drücken Sie die Eingabetaste. Dieser Befehl führt das ausführbare Programm Python
aus, um das Skript convert-os.py aus dem vorherigen Abschnitt aufzurufen.
Nachdem der Befehl ausgeführt wurde, sollten Sie eine ähnliche Ausgabe wie im Bild unten sehen. Wie Sie sehen können, hat der Befehl die JSON-Ausgabe auf dem Bildschirm angezeigt und dieselbe Ausgabe in der Datei c:\temp\python_operating-systems.json gespeichert.

3. Öffnen Sie schließlich die JSON-Datei namens python_operating-systems.json, die das convert-os.py Python-Skript erstellt haben sollte. Um die Datei in diesem Beispiel in Notepad zu öffnen, führen Sie den folgenden Befehl in PowerShell aus.

Verwenden von PowerShell zum Konvertieren von YAML in JSON
PowerShell kann Textdateien bearbeiten und Objekte in mehrere Formate konvertieren, einschließlich JSON. Da PowerShell erweiterbar ist, können Sie PowerShell verwenden, um YAML in das JSON-Format mit dem richtigen Modul zu konvertieren.
Hinzufügen von YAML-Unterstützung zu PowerShell
PowerShell verfügt über integrierte Unterstützung zum Bearbeiten von JSON-Inhalten, jedoch nicht für YAML. Glücklicherweise gibt es ein Modul, das PowerShell erweitert, um YAML-Dateien zu unterstützen. Dieses Modul heißt PowerShell-yaml, und die neueste Version zum Zeitpunkt dieses Schreibens ist 0.4.2. Befolgen Sie diese Schritte, um das Modul zu installieren.
1. Öffnen Sie auf Ihrem Computer eine PowerShell-Sitzung.
2. Kopieren Sie den Befehl unten, fügen Sie ihn in PowerShell ein und drücken Sie die Eingabetaste. Dieser Befehl verwendet das Install-Module
cmdlet, um das PowerShell-yaml-Modul zu installieren.
3. Nach der Installation des Moduls werden zwei neue cmdlets in PowerShell als Teil des PowerShell-yaml-Moduls verfügbar sein. Diese neuen cmdlets sind:
ConvertFrom-Yaml
– das cmdlet zum Konvertieren von YAML-Daten in eine Hash-Tabelle.
ConvertTo-Yaml
– das cmdlet zum Konvertieren von Hash-Tabelle-Objekten in YAML-Daten.
Um zu bestätigen, dass beide cmdlets in PowerShell verfügbar sind, führen Sie den Befehl unten in PowerShell aus.
Wie Sie unten sehen können, hat das Get-Command
cmdlet die cmdlets aus dem PowerShell-yaml-Modul aufgelistet.

Schreiben des Konvertierungsskripts
Um das YAML-zu-JSON-Konvertierungsskript zu erstellen, befolgen Sie diese Anweisungen.
1. Öffnen Sie Ihren Code-Editor und erstellen Sie eine neue Datei namens convert-os.ps1 in Ihrem Arbeitsverzeichnis.
2. Kopieren Sie den folgenden Code und fügen Sie ihn in die leere Datei convert-os.ps1 ein. Der untenstehende Codeausschnitt liest die Datei operating-systems.yml und konvertiert sie in JSON. Nach der Konvertierung in JSON wird es dann in der Datei PowerShell_operating-systems.json gespeichert.
3. Speichern Sie die Datei convert-os.ps1.
Ausführen des Konvertierungsskripts
Jetzt, da Sie Ihr Konvertierungsskript erstellt haben, ist der nächste Schritt, es auszuführen, um YAML in JSON umzuwandeln. Um das PowerShell-Konvertierungsskript auszuführen, befolgen Sie diese Schritte.
- Öffnen Sie ein PowerShell-Fenster, wenn Sie noch keines geöffnet haben.
2. Kopieren Sie den Befehl unten, fügen Sie ihn in PowerShell ein und drücken Sie Enter. Dieser Befehl ruft das Skript convert-os.ps1
auf, das Sie im vorherigen Abschnitt erstellt haben.
3. Nach Ausführung des Skripts öffnen Sie die JSON-Ausgabedatei C:\temp\PowerShell_operating-systems.json, die das Skript convert-os.ps1 im vorherigen Schritt erstellt hat. Führen Sie dazu den folgenden Befehl in PowerShell aus, um die PowerShell_operating-systems.json in Notepad zu öffnen.

Verwendung von Go zur Konvertierung von YAML in JSON
Python und PowerShell sind beide Hochsprachen. Die Verwendung von Hochsprachen erleichtert das Schreiben von Skripten, nimmt jedoch auch ein wenig Kontrolle weg. Auf der anderen Seite ist Go eine Niedrigsprache, was das Importieren von YAML-Daten komplexer macht.
Das Beispiel in diesem Abschnitt wird Go verwenden. Die neueste Version zum Zeitpunkt dieser Abfassung ist go1.16.3. Wenn Sie Go noch nicht haben, konsultieren Sie die Download- und Installationsseite, um es auf Ihrem Computer zu installieren.
Hinzufügen von YAML-Unterstützung zu Go
Wie PowerShell und Python gehört JSON-Unterstützung zu den Kernbibliotheken von Go, aber YAML nicht. Um YAML-Unterstützung in Go hinzuzufügen, müssen Sie zunächst das Paket YAML.v3 mithilfe des Befehls go get
installieren. Um das Paket YAML.v3 zu installieren:
Zuerst öffnen Sie auf Ihrem Computer die Befehlszeile, die Sie verwenden möchten, z.B. die Eingabeaufforderung oder PowerShell. Dieses Beispiel verwendet PowerShell.
Als nächstes kopieren Sie den folgenden Befehl und führen ihn in PowerShell aus. Dieser Befehl lädt das Paket gopkg.in/yaml.v3 herunter und installiert es.

Erstellen des Konvertierungsskripts
Um das Go-Skript zur Konvertierung von YAML in JSON zu erstellen, befolgen Sie diese Anweisungen.
1. Öffnen Sie Ihren Code-Editor und erstellen Sie eine neue Datei namens convert-os.go in Ihrem Arbeitsverzeichnis.
2. Kopieren Sie den untenstehenden Code und fügen Sie ihn in die leere Datei convert-os.go ein. Der Code importiert die erforderlichen Pakete, definiert einige Speicherstrukturen, importiert die YAML-Datei und konvertiert sie in JSON, bevor er sie in eine JSON-Datei namens c:\temp\go_operating-systems.json schreibt.
3. Speichern Sie die Datei convert-os.go.
Ausführen des Konvertierungsskripts
Zum Ausführen von Go-Skripts verwenden Sie den Befehl go run
gefolgt vom Dateinamen des Skripts. Führen Sie zum Ausführen des YAML-zu-JSON-Konvertierungsskripts wie folgt fort.
1. Öffnen Sie auf Ihrem Computer die Befehlsshell, die Sie verwenden möchten. Unter Windows funktioniert go
sowohl in der Eingabeaufforderung als auch in PowerShell. In diesem Beispiel wird PowerShell verwendet, um go
auszuführen.
2. Sobald Sie in PowerShell sind, kopieren Sie den folgenden Befehl und führen Sie ihn in PowerShell aus. Dieser Befehl ruft den Befehl go run
auf, um das Skript c:\temp\convert-os.go auszuführen.

3. Nachdem das Skript ausgeführt wurde, öffnen Sie die Ausgabedatei C:\temp\Go_operating-systems.json, die das Skript convert-os.go im vorherigen Schritt erstellt hat. Dieses Beispiel öffnet die Go_operating-systems.json in Notepad.

Zusammenfassung
In diesem Artikel haben Sie gelernt, wie Sie YAML-Daten und -Dateien mithilfe von Skripts in Python, PowerShell und Go in JSON konvertieren. Jetzt, da Sie verschiedene Möglichkeiten kennen, YAML in JSON zu konvertieren, welche Methode werden Sie Ihrer Meinung nach häufiger verwenden?