Zum Inhalt springen

JSON ⇄ YAML umwandeln

JSON ⇄ YAML

Wandelt in beide Richtungen um, bewahrt die Schlüsselreihenfolge und wählt für die YAML-Seite Block- oder Flow-Stil.

Konvertiert zwischen YAML, JSON und TOML in jede Richtung, im Browser. Die Parser sind für diese Website geschrieben und nicht von npm geholt, weshalb die Seite genau auflisten kann, was sie verweigert – Anker, Tags, Multi-Dokument-Streams –, statt es stillschweigend falsch zu lesen.

🔒 Läuft vollständig in Ihrem Browserjsonyamlconvert
Von
Wird als YAML gelesen.
Nach

Eingabe

Eine .yaml-, .json- oder .toml-Datei ablegen

Wird in diesem Tab gelesen. Nichts wird hochgeladen.

JSON-Ausgabe

Hier geschrieben statt von npm geholt – die Teilmenge ist also gewählt und nicht geerbt. Was auf dieser Liste steht, wird beim Namen genannt und abgelehnt, statt falsch gelesen zu werden.

So funktioniert es

  1. Fügen Sie die Konfiguration ein

    Das Format wird aus dem Text erkannt, und die Beschriftung unter der Auswahl sagt, wofür es sich entschieden hat. Überschreiben Sie es, wenn die Vermutung falsch ist – eine JSON-Datei ist auch gültiges YAML, ein `{ }`-Dokument kann also in beide Richtungen gehen.

  2. Wählen Sie das Ziel

    YAML für ein Kubernetes-Manifest oder eine CI-Datei, JSON für alles, was von einem Programm geparst wird, TOML für eine Rust- oder Python-Projektdatei.

  3. Lesen Sie die Warnungen, nicht nur die Ausgabe

    Eine Konvertierung, die gelungen ist, kann trotzdem die Bedeutung verändert haben – ein `null`, das auf dem Weg nach TOML weggefallen ist, ein `yes`, das unter YAML 1.2 als der String gelesen wird, der es ist. Das erscheint in einem Hinweis unter der Ausgabe, statt versteckt zu werden.

  4. Öffnen Sie die Liste des Abgedeckten, wenn etwas verweigert wird

    Der eingeklappte Abschnitt unten nennt jedes Konstrukt, das diese Parser nicht verarbeiten, und warum. Eine Verweigerung verweist auf diese Liste, statt mit einem Parserfehler zu scheitern, den Sie deuten müssten.

Häufige Fragen

Warum werden meine Anker und Aliase verweigert?

Weil `*base` korrekt aufzulösen heißt, die Merge-Semantik von YAML zu implementieren, und wer das auf subtile Weise falsch macht, erzeugt eine Datei, die richtig aussieht und etwas anderes ausrollt. Sie vor dem Einfügen von Hand aufzulösen ist verlässlich; dieses Raten wäre es nicht. Derselbe Grund gilt für `<<: *base`.

Warum wurde `yes` zu einem String?

Weil das Core-Schema von YAML 1.2 sagt, dass es einer ist – nur `true` und `false` sind Booleans. YAML-1.1-Parser, darunter einige noch in Produktion, lesen es als Boolean. Der Unterschied wird in den Warnungen angekündigt, wenn er auftritt, denn er ist genau die Art von Ding, die ein Deployment verändert.

Was geschieht mit einem `null` auf dem Weg nach TOML?

Es wird weggelassen, und eine Warnung sagt das. TOML hat überhaupt keinen Nullwert, also blieb die Wahl, den Schlüssel wegzulassen oder einen Platzhalter zu erfinden, und einen zu erfinden würde einen wörtlichen `"null"`-String in irgendjemandes Konfiguration setzen.

Bleiben Kommentare erhalten?

Nein. Die Konvertierung geht durch ein Datenmodell, und Kommentare sind keine Daten – JSON hat überhaupt keinen Platz für sie. Wenn Sie die Kommentare brauchen, rücken die YAML- und TOML-Formatierer auf dieser Website an Ort und Stelle neu ein und behalten sie.

Eingabe aus

Danach

Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.