YAML in JSON umwandeln und zurück
Ein Tool für beide Richtungen: Die Richtung wird aus der Datei ermittelt, YAML mit mehreren Dokumenten wird unterstützt, und jeder Fehler nennt seine Zeile.
Dateien hier ablegen
.yaml, .yml, .json, .txt · bis 300 MB
Weitere EinstellungenWeniger Einstellungen
So wandeln Sie YAML in JSON und JSON in YAML um
- 1
YAML- oder JSON-Datei ablegen
Fügen Sie eine Datei oder bis zu zwanzig hinzu. Die Endungen .yaml, .yml und .json werden alle erkannt, und mehrere Dateien auf einmal dürfen beliebig gemischt sein.
- 2
Erkannte Richtung prüfen
Die Richtung ergibt sich aus der Dateiendung, bei reinem Text aus dem Inhalt. Legen Sie sie selbst fest, wann immer die automatische Erkennung nicht das trifft, was Sie meinen.
- 3
Umwandeln und herunterladen
Klicken Sie auf „Umwandeln“ und speichern Sie die umgewandelte Datei. Mehrere Dateien kommen als ein ZIP-Archiv zurück.
Warum die Richtung sorgfältig erkannt werden muss
Jedes gültige JSON-Dokument ist auch gültiges YAML. Würde eine Datei zuerst mit einem YAML-Parser geprüft, würde eine gewöhnliche .json-Datei als YAML eingestuft und in sich selbst umgewandelt. Deshalb entscheidet die Endung: .json wird zu YAML, .yaml und .yml werden zu JSON. Nur bei .txt und anderen Eingaben ohne aussagekräftige Endung entscheidet der Inhalt – und aus genau demselben Grund wird zuerst JSON versucht.
Ein doppelter Schlüssel ist ein Fehler, keine Geschmacksfrage
In JSON gewinnt bei einem wiederholten Schlüssel stillschweigend der letzte Wert. In YAML ist dieselbe Wiederholung ein Fehler, bei dem es sich lohnt anzuhalten, denn sie passiert gerade in Konfigurationsdateien: Eine docker-compose.yml, in der ports zweimal auf derselben Ebene steht, hebt die erste Liste unbemerkt auf – und entdeckt wird das meist erst in der Produktion. Beide Zeilennummern werden genannt, damit Sie sehen, welche Definition gerade verschwinden würde.
Vier Schemas – und was ein engeres bringt
Das Standardschema löst die üblichen YAML-Typen auf, einschließlich Datumswerten und Binärdaten. Core und json sind schrittweise strenger, und failsafe erkennt nur Strings, Maps und Sequenzen. Wählen Sie ein enges Schema, wenn eine Konfiguration als wörtliche Daten gelesen werden muss: Es verhindert die klassischen YAML-Überraschungen, bei denen eine Versionsnummer zur Gleitkommazahl und no zu false wird.
Konfigurationen bleiben auf Ihrem Gerät
Konfigurationsdateien enthalten Hostnamen, Ports, Bucket-Namen und manchmal Heikleres. Genau deshalb findet die Umwandlung in Ihrem Browser-Tab statt und nicht auf einem Server. Parsen und Ausgeben laufen lokal, in einem Worker-Thread, mit Code, der mit der Seite geladen wurde. Nichts wird hochgeladen, nichts landet in einer Warteschlange, und nichts bleibt erhalten, wenn Sie den Tab schließen.
Häufige Fragen
Wie wird die Richtung der Umwandlung bestimmt?
Zuerst nach der Dateiendung: .json wird zu YAML, .yaml und .yml werden zu JSON. Bei .txt und anderen Dateien ohne aussagekräftige Endung entscheidet der Inhalt: Der Text wird zuerst als JSON gelesen, dann als YAML. Lässt er sich weder so noch so parsen, erfahren Sie das und können die Richtung selbst wählen.
Was passiert mit einer YAML-Datei, die mehrere Dokumente enthält?
Eine Datei, deren Dokumente durch --- getrennt sind, lässt sich auf zwei Arten lesen. Ist der Modus für mehrere Dokumente an, wird jedes Dokument zu einem Element eines gemeinsamen JSON-Arrays. Ist er aus, wird nur das erste Dokument umgewandelt, und ein Hinweis, der nichts blockiert, sagt Ihnen, dass der Rest ignoriert wurde. So ist ein gekürztes Ergebnis nie eine stille Überraschung.
Warum gilt ein doppelter Schlüssel als Fehler?
Weil in YAML die zweite Definition die erste überschreibt, ohne dass irgendetwas darauf hinweist. So gehen in Konfigurationsdateien häufig eine Port-Zuordnung oder eine Umgebungsvariable verloren. Die Umwandlung hält an und nennt den Schlüssel samt beiden Zeilennummern, damit Sie entscheiden, welche Definition gemeint war.
Was ist das Failsafe-Schema, und wann brauche ich es?
Failsafe löst nur Strings, Mappings und Sequenzen auf; nichts wird zu einer Zahl, einem booleschen Wert, einem Datum oder null. Es ist die richtige Wahl, wenn eine Konfiguration wörtlich erhalten bleiben muss – zum Beispiel, wenn ein Wert wie 1.10 eine Version und keine Zahl ist oder wenn das Norwegen-Problem den Ländercode no in false verwandelt.
Bleiben YAML-Kommentare im JSON erhalten?
Nein, und das ist auch nicht möglich. JSON hat überhaupt keine Syntax für Kommentare, deshalb fällt bei der Umwandlung alles nach einem # weg. Das ist eine Eigenschaft des Zielformats und keine Lücke im Tool. Sind Ihnen die Kommentare wichtig, bleibt das YAML die maßgebliche Quelle.
Was ändert die Tiefe für den Inline-Stil?
Sie legt fest, ab welcher Verschachtelungstiefe die YAML-Ausgabe vom Block-Stil mit Bindestrichen und Einrückung in den Inline-Stil wie [a, b] und {a: b} wechselt. Standardmäßig bleibt jede Ebene im Block-Stil, der sich bei von Hand bearbeiteten Konfigurationen am besten liest. Eine positive Tiefe macht alles darunter kompakt – passend für tief verschachtelte Daten.
Werden Anker und Aliase unterstützt?
Nein. Anker, Aliase und Merge-Keys (&defaults, *defaults und <<) sowie eigene Anwendungs-Tags liest dieses Tool nicht. Eine Datei, die sie verwendet, bekommt eine klare Fehlermeldung mit der Zeile statt eines unbemerkt falschen Ergebnisses. Bei einer Konfiguration, die Sie gleich ausrollen wollen, ist das der sicherere Fehlerfall.
Wird meine Datei irgendwo hochgeladen?
Nein. Beide Parser werden mit der Seite geladen und laufen in Ihrem Browser-Tab, Ihre Konfiguration geht also nie über das Netzwerk. Es gibt keinen Serverteil, der sie speichern könnte, und nach dem Schließen des Tabs bleibt nichts erhalten.