TanodTools
DE

YAML in JSON umwandeln

Fügen Sie YAML ein und erhalten Sie JSON zurück, mit aufgelösten Ankern und Merge-Keys und der genauen Zeile jedes Syntaxfehlers.

Läuft vollständig in Ihrem Browser

Layout

Eingabe bis etwa 10 MB. Gelesen wird YAML 1.2, nur mit den Standardtypen; eigene Tags wie !!python/object werden abgelehnt, nicht ausgeführt.

So wandeln Sie YAML in JSON um

  1. Fügen Sie Ihr YAML in das Feld ein oder klicken Sie auf Beispiel einfügen.
  2. Wählen Sie für das JSON-Layout 2 Leerzeichen, 4 Leerzeichen, Tabs oder Minifiziert.
  3. Enthält das YAML einen Syntaxfehler, sehen Sie Zeile und Spalte. Andernfalls kopieren Sie das JSON oder laden es als .json-Datei herunter.

Von YAML zu JSON

YAML und JSON beschreiben dieselbe Art von Daten: Mappings, Listen und einfache Werte. YAML wird von Menschen geschrieben, mit Einrückung statt Klammern, mit Kommentaren und Abkürzungen wie Ankern; JSON erwarten die meisten Programme und APIs. YAML in JSON umzuwandeln ist häufig nötig, wenn ein Kubernetes-Manifest, eine Compose-Datei oder eine OpenAPI-Beschreibung an etwas übergeben werden muss, das nur JSON liest.

Manche YAML-Funktionen haben keine Entsprechung in JSON, deshalb löst der Konverter sie auf. Ein Anker (&base) markiert einen Block, den ein Alias (*base) wiederverwenden kann, und ein Merge-Key (<<) kopiert die Einträge eines Mappings in ein anderes; in JSON wird daraus jeweils eine vollständige Kopie. Kommentare fallen weg, weil JSON sie nicht aufnehmen kann. Eine Datei mit mehreren durch --- getrennten Dokumenten wird zu einem JSON-Array.

Die Typregeln folgen YAML 1.2: true und false sind Boolesche Werte, null und ~ sind null, Zahlen sind Zahlen, und alles andere, auch yes und 2024-05-01, ist Text. Syntaxfehler kommen mit Zeile und Spalte; die häufigsten Ursachen sind ein Tab als Einrückung, ein im selben Mapping wiederholter Schlüssel und ein Wert, der nicht unter seinem Schlüssel eingerückt ist.

Tipps

Häufige Fragen

Wird mein YAML hochgeladen?

Nein. Der YAML-Parser wird beim ersten Einfügen von dieser Website geladen und läuft in Ihrem Browser. Konfigurationen mit Passwörtern oder Schlüsseln darin werden nirgendwohin gesendet.

Warum ist yes weiterhin der Text "yes"?

Dieses Tool folgt YAML 1.2, wo nur true und false Boolesche Werte sind. Die Wörter yes, no, on und off bleiben Strings. Das vermeidet das sogenannte Norwegen-Problem, bei dem der Ländercode NO unter YAML-1.1-Parsern zu false wird. Liest Ihr Zielprogramm mit einem YAML-1.1-Parser, kann es diese Wörter anders interpretieren.

Was passiert mit Datumsangaben und Zeitstempeln?

Ein Wert wie 2024-05-01 bleibt der String "2024-05-01". JSON hat keinen Datumstyp, und eine Umwandlung in eine Zahl oder ein anderes Format würde Informationen verlieren.

Was ist mit sehr großen Ganzzahlen?

Ganzzahlen über 9.007.199.254.740.991 (253 − 1) werden Ziffer für Ziffer geschrieben statt gerundet, sodass eine ID wie 12345678901234567890 erhalten bleibt. Beachten Sie, dass ein Programm, das das JSON später mit gewöhnlichen JavaScript-Zahlen liest, sie runden wird.

Werden Anker, Aliase und Merge-Keys unterstützt?

Ja. &name-Anker und *name-Aliase werden aufgelöst, und <<: *name führt ein Mapping in ein anderes zusammen. Weil JSON keine Verweise kennt, wird jeder Alias vollständig ausgeschrieben.

Was hat es mit dem Alias-Limit und der 20-MB-Grenze auf sich?

Eine kleine YAML-Datei kann Aliase enthalten, die sich zu etwas Riesigem aufblähen, eine sogenannte Alias-Bombe. Dateien mit mehr als 10.000 Aliasen werden abgelehnt, und die Umwandlung stoppt, wenn das JSON 20 MB überschreiten würde, damit Ihr Tab nicht einfriert.