JSON ↔ YAML-Konverter
JSONBidirektionale Umwandlung zwischen JSON und YAML 1.2 mit Live-Validierung und Zeilen-/Spalten-Fehlerpositionen.
Remote-URLs werden nicht abgerufen; fügen Sie Ihr JSON direkt ein.
Auf dieser Seite
Was ist ein YAML-/JSON-Konverter?#
YAML und JSON sind zwei Arten, dieselbe Art von Daten niederzuschreiben — verschachtelte Maps, Listen, Strings, Zahlen, Boolesche Werte und null. JSON ist streng und zeichensatzlastig (jeder String in doppelten Anführungszeichen, überall Klammern); YAML tauscht diese Anführungszeichen und geschweiften Klammern gegen Einrückung und Bindestriche, was es so lesbar macht, dass Menschen es für Konfigurationsdateien, CI-Pipelines und Container-Manifeste von Hand schreiben.
Man muss ständig zwischen den beiden wechseln, weil verschiedene Werkzeuge verschiedene Formate bevorzugen. Ein Kubernetes-Chart wird in YAML verfasst, aber die API spricht JSON. Eine CI-Konfiguration ist YAML; der Linter, den Sie füttern möchten, erwartet JSON. Ein Teammitglied fügt einen YAML-Block in einen Chat ein; Ihr Skript will JSON.parse. Das von Hand zu erledigen — neu einrücken, neu anführungszeichen, Bindestriche gegen Klammern tauschen — ist genau die Art fummelige Arbeit, die ein fremdes Komma oder ein verschobener Leerraum einführt, und dann parst nichts mehr.
Diese Seite konvertiert in Ihrem Browser in beide Richtungen. YAML zu JSON, wenn Sie maschinenfreundliche Strenge brauchen; JSON zu YAML, wenn Sie eine Konfigurationsdatei wollen, die ein Mensch tatsächlich lesen kann. Sie parst mit dem YAML-1.2-Core-Schema (keine riskante Objekt-Instanziierung), pinnnt Fehler auf eine genaue Zeile und Spalte und weigert sich, lange Zeilen umzubrechen, sodass die Ausgabe diff-freundlich bleibt.
Verwendung#
- Wählen Sie eine Richtung am Zweierknopf-Umschalter oben links auf der Werkzeugleiste:
- YAML → JSON (Standard): links YAML einfügen, rechts strenges JSON erhalten.
- JSON → YAML: links JSON einfügen, rechts eingerücktes YAML erhalten.
- Wählen Sie die Einrückung — 2 oder 4 Leerzeichen. Dies steuert die Schachtelungstiefe der Ausgabe auf beiden Seiten.
- Klicken Sie auf Beispiel, um ein kurzes Beispiel zu laden, wenn Sie das Verhalten sehen möchten, bevor Sie eigene Daten einfügen, oder auf Leeren, um beide Flächen zu löschen.
- Die rechte Fläche aktualisiert sich, sobald die Konvertierung läuft. Die Statusleiste darunter meldet eines von drei Dingen: eine Erfolgsmeldung mit der Ausgabe-Bytegröße, einen Hinweis auf leere Eingabe oder einen Parse-Fehler mit 1-basierter Zeile und Spalte, der auf das genaue fehlerhafte Token zeigt.
- Klicken Sie auf Kopieren in der Ausgabe-Kopfzeile, um das Ergebnis zu übernehmen.
Die Konvertierung läuft, sobald die Eingabe parst. Es gibt keine Erzeugen-Schaltfläche zu klicken — korrigieren Sie die Eingabe und die Ausgabe aktualisiert sich.
Eckpunkte#
- Bidirektional, ein Flächenpaar. Dasselbe Eingabe-/Ausgabe-Layout bedient beide Richtungen; der Umschalter entscheidet, welcher Parser läuft.
- YAML-1.2-Core-Schema.
null,true/false, Ganzzahlen, Gleitkommazahlen und zitierte Strings werden exakt so aufgelöst, wie ein standardkonformer Parser sie auflöst — nicht als eine lose Heuristik. - Zeilenumbruch deaktiviert. Lange Ausgabezeilen werden niemals umbrochen oder ausgelassen, sodass ein Diff gegen eine eingecheckte Datei nur echte Änderungen zeigt.
- Genaue Fehlerposition. Eine falsche Einrückung oder ein fremdes
:wird alsZeile:Spaltegemeldet, nicht als ein generisches „konnte nicht parsen“. - Tiefengeschützt. Tief verschachtelte Eingaben (die klassische „YAML-Billion-Laughs“-Erweiterung) werden gedeckelt, sodass eine feindliche oder versehentlich rekursive Datei den Tab nicht einfrieren kann.
- Nur lokal. Ihre Konfiguration verlässt niemals die Seite — es gibt kein Backend, an das man sie senden könnte. Oberhalb eines Megabytes wird das schwere Parsing an einen Background-Worker übergeben, damit die Oberfläche ansprechbar bleibt.
Konkretes Beispiel#
Eine typische echte Aufgabe: Eine als YAML geschriebene Service-Konfiguration soll in einen JSON-Request-Body. Fügen Sie dies mit YAML → JSON und 2 Einrückung in die linke Fläche ein:
name: api-gateway
port: 8080
replicas: 3
targets:
- host: example.com
port: 443
- host: cdn.example.com
port: 8443
features:
retries: true
timeout_ms: 2500
Die rechte Fläche erzeugt strenges, parse-bereites JSON:
{
"name": "api-gateway",
"port": 8080,
"replicas": 3,
"targets": [
{
"host": "example.com",
"port": 443
},
{
"host": "cdn.example.com",
"port": 8443
}
],
"features": {
"retries": true,
"timeout_ms": 2500
}
}
Beachten Sie, dass die unzitierten YAML-Werte 8080, true und 3 eine JSON-Zahl, einen Booleschen bzw. eine Zahl wurden — das Core-Schema hat sie typisiert, Sie mussten es nicht. Kehren Sie die Richtung um (JSON → YAML) und fügen Sie das JSON wieder ein: Sie erhalten dieselbe verschachtelte Struktur neu eingerückt mit Bindestrichen für Listenelemente, was die Form ist, die Sie in ein Konfigurations-Repository einchecken würden.
FAQ#
Bleiben meine YAML-Kommentare beim Round-Trip erhalten?#
Nein. JSON hat überhaupt keine Kommentar-Syntax, deshalb wird jeder # comment in Ihrem YAML auf dem Weg zu JSON gelesen und dann verworfen — es gibt schlicht keinen Ort dafür. Kommentare werden bei der Eingabe toleriert (sie verursachen nie einen Fehler), aber sie können das Überschreiten nicht überleben. Wenn Kommentare wichtig sind, behalten Sie das YAML als Quelle der Wahrheit und erzeugen Sie jedes Mal JSON daraus neu.
Verarbeitet es mehrdokumentiges YAML (Dateien, die durch --- getrennt sind)?#
Es verarbeitet den Dokument-Strom und gibt das führende Dokument zurück. Die meisten Konfigurations- und Manifestdateien sind eindokumentig, deshalb ist das selten ein Problem; wenn Sie einen Mehrdokument-Strom haben, trennen Sie ihn an den ----Trennern und konvertieren Sie jeden Teil.
YAML oder JSON für meine Konfigurationsdatei — was soll ich wählen?#
Verwenden Sie YAML, wenn ein Mensch sie von Hand bearbeitet und Sie kommentarartige Lesbarkeit mit Ankern und Schachtelung durch Einrückung wünschen. Verwenden Sie JSON, wenn eine Maschine sie erzeugt und ein Parser sie konsumiert, oder wenn Strenge zählt (JSON hat genau eine legale Art, jeden Wert zu schreiben, sodass es keine Mehrdeutigkeit zu debuggen gibt). Dieses Werkzeug existiert, damit Sie sich nicht auf nur eines festlegen müssen.
Der Fehler sagt „Zeile 4, Spalte 5“, aber diese Zeile sieht in Ordnung aus. Was ist falsch?#
Fast immer Einrückung. YAML entscheidet die Struktur aus führenden Leerzeichen, deshalb taucht ein Kind, das ein Leerzeichen zu weit links oder rechts steht — oder gemischte Tabulatoren und Leerzeichen — als Fehler in der Zeile nach dem eigentlichen Verursacher auf, weil der Parser die Inkonsistenz erst bemerkt, wenn er das nächste Token liet. Prüfen Sie zuerst die Einrückung der Zeile über der gemeldeten Zeile.