YAML in JSON umwandeln: was mit deiner Datei passiert
Die docker-compose.yml muss in ein Skript, das nur JSON versteht? Dann hilft ein YAML-JSON-Konverter. Du fügst den Text links ein und bekommst rechts das Ergebnis. Der Weg zurück, JSON in YAML, steckt auf derselben Seite.
Das Tool liest YAML 1.2. Dort sind yes, no, on und off gewöhnliche Strings und keine Wahrheitswerte. Ein Datum wie 2001-12-14 bleibt ein String. Oktalzahlen brauchen die Vorsilbe 0o: 0o17 ist 15, 017 dagegen 17.
Anker (&name), Aliase (*name) und Merge-Schlüssel (<<: *name) werden aufgelöst. Im JSON stehen also die kopierten Werte. Kommentare kennt JSON nicht, sie fallen weg.
Mehrere Dokumente in einer Datei
Trennt --- mehrere Dokumente, entsteht ein JSON-Array mit einem Eintrag je Dokument. Die Statuszeile nennt die Anzahl, etwa "3 Dokumente". Enthält die Datei nur ein Dokument, bleibt es ein einzelnes Objekt oder eine einzelne Liste. Leere Dokumente am Ende zählen nicht mit.
So wandelst du eine Konfiguration um
- Wähle die Richtung mit den Schaltflächen "YAML → JSON" oder "JSON → YAML". Für jede Richtung steht ein Beispiel im Eingabefeld, bis du eigenen Text einfügst.
- Füge deinen Text ein. Die Umwandlung startet 300 Millisekunden nach dem letzten Tastendruck. Beim ersten Mal wird die YAML-Bibliothek geladen, das dauert einen Moment.
- Stelle die Optionen ein: JSON-Einrückung mit 2 Leerzeichen, 4 Leerzeichen oder minimiert sowie "Schlüssel alphabetisch sortieren". Bei YAML-Ausgabe wählst du außerdem die Einrückung und ob lange Zeilen bei 80 Zeichen umbrechen.
- Klicke auf "Kopieren" oder "Herunterladen". Die Datei heißt
converted.jsonoderconverted.yaml.
Wenn aus "123" eine Zahl werden würde
Beim Weg von JSON zu YAML lauert eine Falle. Der String "123" darf nicht zur Zahl 123 werden, deshalb schreibt das Tool ihn mit Anführungszeichen. Dasselbe gilt für "null", "true", "~" und den leeren String. Auch "yes", "no", "on", "off" und alles, was wie ein Datum beginnt, steht in Anführungszeichen. Ältere YAML-1.1-Parser lesen solche Werte als Wahrheitswert oder Zeitstempel. Strings mit Zeilenumbruch werden zu Blockskalaren mit |.
Fehler, Hinweise und Werte, die JSON nicht kennt
Ist das YAML kaputt, zeigt das Tool die Meldung der Bibliothek mit Zeile und Spalte. Typisch ist ein Tabulator als Einrückung. Zwei gleiche Schlüssel in einer Map sind ein Fehler, kein stilles Überschreiben. Ein Alias ohne Anker darüber ebenfalls. Ein unbekannter Tag wie !custom ist nur ein Hinweis, der Wert bleibt Text.
YAML kennt .nan, .inf und -.inf, JSON nicht. Das Tool schreibt dafür null und nennt die Zahl der ersetzten Werte. Ganzzahlen über 2^53 werden auf die nächste speicherbare Zahl gerundet, auch dazu erscheint ein Hinweis. Dieselbe Rundung passiert, wenn du JSON mit solchen Zahlen einfügst. Wiederholt ein JSON-Text einen Schlüssel, gilt der letzte Wert. Eingaben über 2.000.000 Zeichen lehnt das Tool mit einer Meldung ab.
Bleibt alles auf deinem Rechner?
Es wird nichts hochgeladen. Die YAML-Bibliothek ist ein Skript dieser Website, das dein Browser beim ersten Umwandeln einmal lädt. Danach läuft alles im Browser-Tab. "Kopieren" nutzt die Zwischenablage, "Herunterladen" speichert eine Datei aus dem Browser. Im Netzwerk-Tab der Entwicklertools siehst du keine Anfrage mit deinem Text.