JSON zu YAML und YAML zu JSON in Ihrem Browser umwandeln
JSON und YAML beschreiben dieselbe Art von Daten — verschachtelte Maps, Listen, Zeichenketten, Zahlen und boolesche Werte — aber sie sehen sehr unterschiedlich aus und werden an verschiedenen Stellen genutzt. Wenn Sie Zeit nahe APIs, Container-Dateien oder CI-Pipelines verbringen, müssen Sie irgendwann das eine in das andere verwandeln. Diese Seite erledigt diese Umwandlung in beide Richtungen, vollständig in Ihrem Browser, sodass die eingefügten Daten nie Ihre Maschine verlassen.

Was JSON ist und wo es lebt
JSON (JavaScript Object Notation) ist ein striktes Klammern-und-Geschweifte-Format, das zuerst für Maschinen gebaut wurde. Jedes Objekt wird in {} gehüllt, jedes Array in [], Schlüssel und Zeichenkettenwerte stehen in doppelten Anführungszeichen, und Elemente werden durch Kommas getrennt. Es ist das Standard-Übertragungsformat für REST- und GraphQL-APIs, der Rumpf der meisten Webhooks, die Form von NoSQL-Dokumenten und das, was Ihr Fetch-Aufruf zurückgibt. Nahezu jede Sprache parst es von Haus aus, und genau deshalb hat es die API-Schicht erobert: JSON.parse in JavaScript, json in der Python-Standardbibliothek und Entsprechungen überall sonst. Der Kompromiss ist, dass JSON von Hand zu schreiben umständlich ist und Kommentare verbietet, also ein schlechtes Format für Dateien, die ein Mensch den ganzen Tag bearbeitet.
Was YAML ist und wo es lebt
YAML (YAML Ain't Markup Language) wurde für die gegenteilige Priorität entworfen: Menschen zuerst. Es lässt die Klammern und Anführungszeichen weg, nutzt Einrückung, um Verschachtelung auszudrücken, und lässt Sie Kommentare mit # schreiben. Diese Lesbarkeit ist der Grund, warum es zur Lingua franca der Konfiguration wurde. Docker-Compose-Dateien, Kubernetes-Manifeste, GitHub-Actions- und GitLab-CI-Workflows, Ansible-Playbooks und unzählige App-Konfigurationsdateien sind alle YAML. Ein typisches YAML-Dokument ist merklich kürzer als das entsprechende JSON und weit leichter in einem Pull Request zu vergleichen. Der Preis dieser Eleganz ist Fragilität, und genau da wird die Umwandlung interessant.
Die Schlüsselunterschiede, die zählen
Drei Unterschiede treiben fast jede Umwandlungsentscheidung. Erstens: Leerraum ist in YAML bedeutsam und in JSON bedeutungslos. YAML nutzt Leerzeichen — nie Tabulatoren —, um Struktur zu kennzeichnen, sodass ein einzelnes falsch ausgerichtetes Leerzeichen die Bedeutung eines Dokuments stillschweigend ändern kann. JSON kümmert sich überhaupt nicht um Einrückung. Zweitens: YAML unterstützt Kommentare und JSON nicht. Jeder #-Kommentar in YAML verschwindet einfach, wenn Sie JSON erzeugen, weil es keinen Platz dafür gibt. Drittens: YAML hat eine reichhaltigere, implizite Typisierung. Es liest bereitwillig Daten, Zeitstempel und null in mehreren Schreibweisen und errät Typen aus nicht zitierten Werten. JSON hat einen kleinen, expliziten Typensatz und keine Mehrdeutigkeit. Beachten Sie außerdem, dass JSON technisch eine Teilmenge von YAML 1.2 ist, weshalb gültiges JSON meist sauber als YAML parst, aber das Umgekehrte ist nicht garantiert.

Umwandlungs-Stolpersteine, auf die man achten sollte
Der Hin- und Rückweg ist nicht immer verlustfrei, und es lohnt sich zu wissen, wo Dinge brechen:
- Das Norwegen-Problem. Unter YAML-1.1-Regeln parst nicht zitiertes
NOals den booleschen Wertfalse, undyes,onsowieoffwerden ebenfalls zu booleschen Werten. Ein Ländercode oder ein Schalterlabel kann zutrue/falsekippen, bevor Sie es bemerken. Zitieren Sie Werte, die Sie als Zeichenketten meinen. - Zahlen-Zwang. Eine Version wie
3.10kann ihre nachgestellte Null verlieren und zu3.1werden, und1.0wird zu einer Zahl, selbst wenn Sie Text wollten. Zitieren Sie Versionszeichenketten und IDs. - Anker und Aliasse verschwinden. YAMLs
&anchor- und*alias-Verweise haben keine JSON-Entsprechung. Ein guter Konverter expandiert sie in ihren vollen Wert, sodass die Daten korrekt sind, aber die Deduplizierung verloren ist — JSON zu YAML zu JSON baut die ursprünglichen Anker nicht wieder auf. - Kommentare und Block-Skalare. Kommentare werden beim Übergang zu JSON verworfen. Mehrzeilige Block-Skalare (
|und>) fallen in gewöhnliche JSON-Zeichenketten mit\n-Escapes zusammen, sodass die visuelle Formatierungsabsicht verloren geht. - Einrückung beim Rückweg zu YAML. JSON kodiert keine Einrückung, also wählt der Konverter einen einheitlichen Stil. Prüfen Sie ihn, bevor Sie in ein tabulatorsensibles Werkzeug einfügen.
Warum nur lokal zählt
Konfigurationsdateien und API-Payloads sind genau die Art von Dingen, die nicht auf einen beliebigen Server hochgeladen werden sollten: Sie tragen oft Hostnamen, Tokens, interne Dienstnamen oder Kundendaten. Dieser Konverter führt den Parse-und-Ausgabe-Schritt in Ihrem Browser mit JavaScript aus. Nichts wird an ein Backend gesendet, nichts protokolliert, und das Werkzeug funktioniert offline, sobald die Seite geladen ist. Fügen Sie ein Kubernetes-Secret oder einen CI-Workflow mit der Zuversicht ein, dass es auf Ihrer Maschine bleibt.
Brauchen Sie verwandtes Werkzeug? Stöbern Sie durch das vollständige Angebot an Datenkonvertern, räumen Sie unordentliche Eingaben mit dem JSON-Formatierer auf und kommen Sie hierher zurück, wann immer Sie zwischen der API-Welt und der Konfigurationswelt wechseln müssen.
Häufig gestellte Fragen
Werden meine Daten irgendwo hochgeladen?
Nein. Die Umwandlung geschieht vollständig in Ihrem Browser mit lokalem JavaScript. Ihr JSON oder YAML wird nie an einen Server gesendet, sodass Secrets und Konfigurationsdateien privat bleiben.
Warum hat sich mein YAML-Wert true oder false unerwartet geändert?
YAML 1.1 behandelt nicht zitierte Wörter wie yes, no, on und off als boolesche Werte — das Norwegen-Problem. Hüllen Sie jeden Wert, den Sie als Zeichenkette meinen, in Anführungszeichen, damit er die Umwandlung als Text übersteht.
Was geschieht mit meinen Kommentaren, wenn ich YAML zu JSON umwandle?
JSON hat keine Kommentarsyntax, also werden alle Raute-Kommentare bei der Umwandlung entfernt. Wenn Sie Notizen bewahren müssen, halten Sie Ihre maßgebliche Kopie in YAML.
Bleiben YAML-Anker und -Aliasse erhalten?
Sie werden in ihre vollen Werte expandiert, weil JSON keinen Verweismechanismus hat. Die Daten bleiben korrekt, aber die Deduplizierung ist beim Rückweg zu YAML nicht wiederherstellbar.
Kann ich JSON zu YAML ebenso wie YAML zu JSON umwandeln?
Ja, das Werkzeug funktioniert in beide Richtungen. Fügen Sie JSON ein, um YAML zu erhalten, oder fügen Sie YAML ein, um JSON zu erhalten, und der Konverter erkennt und gibt das andere Format aus.
Warum bricht YAML, wenn ich Tabulatoren nutze?
YAML verlangt Leerzeichen für die Einrückung und lehnt Tabulatoren ab. Wenn ein Einfügen nicht parst, ersetzen Sie Tabulatorzeichen durch Leerzeichen und halten Sie die Einrückung einheitlich.
