JSON in YAML und YAML in JSON umwandeln

Ein Textfeld wandelt in beide Richtungen um. YAML → JSON liest die Eingabe als YAML und gibt das passende JSON aus; JSON → YAML liest striktes JSON und schreibt daraus YAML. Diese beiden Schaltflächen sind die einzigen Bedienelemente, die Richtung ist also immer eindeutig.

Beide Parser gehören zur Seite und laufen in diesem Tab. Es wird nichts hochgeladen, die Umwandlung funktioniert nach dem Laden auch ohne Netzverbindung, und der Text bleibt auf Ihrem Rechner.

  1. Fügen Sie JSON oder YAML in das Feld ein oder tippen Sie es ein. Der Platzhalter lautet „YAML oder JSON eingeben“.
  2. Klicken Sie auf YAML → JSON, um die Eingabe als YAML zu lesen und JSON mit zwei Leerzeichen Einrückung auszugeben.
  3. Klicken Sie auf JSON → YAML, um die Eingabe als striktes JSON zu lesen — Schlüssel in doppelten Anführungszeichen, keine Kommentare, kein abschließendes Komma — und YAML auszugeben.
  4. Lesen Sie die Zeile über dem Ergebnis: Sie nennt die Richtung und die Anzahl der Dokumente oder zeigt die Parser-Meldung mit Zeile und Spalte des ersten Fehlers.
  5. Kopieren übernimmt den genauen Text des Ergebnisses; Leeren räumt beide Felder für das nächste Dokument.

Was die beiden Richtungen annehmen

JSON → YAML nutzt den JSON-Parser des Browsers, die Eingabe muss also gültiges JSON sein: Schlüssel in doppelten Anführungszeichen, keine Kommentare, kein abschließendes Komma, keine Werte ohne Anführungszeichen. Das YAML schreibt der mitgelieferte YAML-1.2-Generator: zwei Leerzeichen Einrückung, „|-“-Blockskalare für Zeichenketten mit Zeilenumbrüchen und Anführungszeichen nur dort, wo der Wert sonst seinen Typ ändern würde.

YAML → JSON liest das Kern-Schema 1.2. true und false sind boolesche Werte, yes, no, on und off bleiben Text; 0x1F und 0o17 sind Zahlen, 1_000 bleibt eine Zeichenkette; ein Datum wie 2024-01-02 bleibt die Zeichenkette „2024-01-02“, statt zu einem Zeitstempel zu werden. Das Ergebnis ist JSON mit zwei Leerzeichen Einrückung.

Anker, Merge-Schlüssel und mehrere Dokumente

Aliase und Merge-Schlüssel werden beim Lesen aufgelöst. Eine Map, die „base: &b“ mit „<<: *b“ teilt, kommt im JSON mit den geerbten Schlüsseln an; ein wörtlicher Schlüssel „<<“ bleibt nicht übrig. JSON kennt keine Anker, ein Hin und Zurück ergibt also ein gewöhnliches Objekt.

Durch „---“ getrennte Dokumente werden der Reihe nach einzeln umgewandelt. Drei Dokumente ergeben ein JSON-Array mit drei Einträgen, und die Statuszeile nennt „3 Dokumente“; lässt sich eines nicht lesen, nennt die Meldung dieses Dokument, und das Ergebnisfeld wird geleert.

Zahlen, doppelte Schlüssel und große Ergebnisse

Doppelte Schlüssel werden unterschiedlich behandelt: JSON behält still den letzten Wert, YAML mit doppeltem Schlüssel wird mit einer Meldung abgelehnt. Ganze Zahlen außerhalb ±9007199254740991 lassen sich in JavaScript nicht exakt speichern, sie werden auf den nächstliegenden darstellbaren Wert gerundet, und die Statuszeile nennt die Anzahl; .inf, -.inf und .nan gibt es in JSON nicht und werden zu null, ebenfalls mit Hinweis.

Ein Syntaxfehler leert das vorherige Ergebnis, statt es stehen zu lassen, eine alte Umwandlung kann also nicht versehentlich kopiert werden; ein leeres Feld wird mit einem Hinweis beantwortet statt mit einer Umwandlung. Ergebnisse über etwa 100 000 Zeichen erscheinen ohne Syntaxhervorhebung: Der Text ist vollständig, und der Verzicht auf die Farben ist es, was ein Dokument von mehreren Hundert Kilobyte am Einfrieren des Tabs hindert.

Zuletzt verwendet: