Tools / Text und Daten / YAML, JSON und TOML
Clientseitig

YAML, JSON und TOML

YAML, JSON und TOML lokal im Browser in alle Richtungen konvertieren, mit Unterstützung für mehrzeilige Strings und verschachtelte Arrays für CI- und Konfigurations-Migrationen.

Funktionen

  • Sechs Richtungen zwischen YAML, JSON und TOML
  • Anker und Aliase aufgelöst, mehrzeilige Strings erhalten
  • Quell- und Zielformat unabhängig wählen
  • Parse-Fehler mit Zeile und Spalte
  • Lokal verarbeitet, Konfigurationsdateien verlassen den Tab nicht

YAML, JSON und TOML beschreiben dasselbe Datenmodell (Maps, Listen, Strings, Zahlen, Booleans) mit drei verschiedenen Syntaxen. Weil Kubernetes-Manifeste YAML bevorzugen, Cargo.toml und pyproject.toml TOML vorgeben und viele APIs JSON erwarten, pendelt jede größere Codebasis zwischen allen dreien. Dieser Konverter liest eines der Formate und schreibt ein anderes: Eingabeformat über dem linken Feld wählen, Ausgabeformat über dem rechten, dann auf Konvertieren klicken. Die Rust-Bibliotheken serde_yaml, serde_json und toml, kompiliert zu WebAssembly, erledigen das im Browser: Ihre Konfigurationsdateien gehen an keinen Server.

Die sechs Richtungen und ihre eigenen Seiten

Alle Richtungen stehen hier zur Verfügung. Die vier meistgesuchten haben zusätzlich eine eigene Seite mit vorgewählten Formaten und einer Anleitung speziell für dieses Paar:

  • YAML nach JSON: um eine YAML-Konfiguration an ein Tool oder eine API zu übergeben, die nur JSON liest. Siehe den YAML-zu-JSON-Konverter.
  • JSON nach YAML: um Kubernetes-, Docker-Compose-, GitHub-Actions- oder Ansible-Dateien aus JSON-Daten zu schreiben. Siehe den JSON-zu-YAML-Konverter.
  • TOML nach JSON: um pyproject.toml, Cargo.toml oder Hugo-Konfigurationen mit JSON-Werkzeugen zu untersuchen. Siehe den TOML-zu-JSON-Konverter.
  • JSON nach TOML: um eine TOML-Konfiguration aus strukturierten Daten zu erzeugen. Siehe den JSON-zu-TOML-Konverter.
  • YAML nach TOML und TOML nach YAML: nur auf dieser Seite. Intern läuft die Umwandlung über JSON, es gelten also die Regeln beider Schritte.

So funktioniert der Konverter

  1. Wählen Sie das Eingabeformat (voreingestellt ist YAML) und fügen Sie Ihren Inhalt links ein.
  2. Wählen Sie das Ausgabeformat (voreingestellt ist JSON).
  3. Klicken Sie auf Konvertieren. Das Ergebnis erscheint rechts mit einer Statusmeldung wie „Von YAML nach JSON konvertiert“, oder mit einem Fehler, der erklärt, was nicht gelesen werden konnte.
  4. Kopieren Sie die Ausgabe. Sind Ein- und Ausgabeformat gleich, wird der Text unverändert übernommen.

Was erhalten bleibt und was sich ändert

Die Umwandlung läuft über ein Datenmodell, nicht über eine Textersetzung. Die Daten bleiben erhalten, die Formatierung der Quelldatei nicht.

  • Kommentare gehen verloren. Sie sind keine Daten, und JSON kennt keine Kommentarsyntax. Bewahren Sie die Originaldatei auf, wenn die Kommentare wichtig sind.
  • Schlüsselreihenfolge: In JSON- und YAML-Ausgabe werden Schlüssel alphabetisch sortiert. In TOML stehen einfache Schlüssel zuerst, danach folgen Tabellen ([abschnitt]), wie es das Format verlangt.
  • Anker und Aliase (&basis, *basis) werden aufgelöst: Der referenzierte Inhalt wird an jede Verwendungsstelle kopiert. Der Merge-Key << wird dagegen nicht zusammengeführt und erscheint als wörtlicher Schlüssel namens <<.
  • Mehrzeilige Strings bleiben erhalten und werden in YAML als Block (|-) geschrieben, damit Skripte und Zertifikate lesbar bleiben.
  • Arrays von Objekten werden in TOML zu Arrays von Tabellen ([[server]]).

Grenzen und Sonderfälle

  • Ein YAML-Dokument pro Durchgang. Dateien mit mehreren durch --- getrennten Dokumenten, wie bei Kubernetes üblich, werden abgelehnt. Wandeln Sie jedes Dokument einzeln um.
  • Typisierung nach YAML 1.2. yes, no, on und off bleiben Strings, 010 bleibt der String „010“. Damit entfällt das berüchtigte „Norwegen-Problem“, bei dem der Ländercode NO zu false wurde. Nur true und false (auch True oder TRUE) sind Booleans.
  • TOML braucht eine Tabelle auf oberster Ebene. JSON, das ein Array oder ein Einzelwert ist, lässt sich nicht in TOML umwandeln. Packen Sie es in ein Objekt, etwa {"items": [...]}.
  • TOML kennt kein null. Ein null-Wert in JSON oder YAML lässt die Umwandlung nach TOML scheitern. Entfernen Sie den Schlüssel oder ersetzen Sie den Wert.
  • TOML-Datumswerte: Ein Datum wie 1979-05-27T07:32:00Z wird in JSON oder YAML zu einem Objekt mit dem internen Schlüssel $__toml_private_datetime, der das Datum als Text enthält. Ersetzen Sie dieses Objekt durch einen einfachen String, falls Ihr Ziel das erwartet.

Im Vergleich zu Kommandozeilen-Tools

Auf der Kommandozeile wandelt yq YAML in JSON und zurück, und Python schafft das mit PyYAML sowie dem Standardmodul tomllib (das TOML liest, aber nicht schreibt). Für Skripte und CI-Jobs ist das die richtige Wahl. Diese Seite ist schneller für eine Stichprobe während einer Migration, funktioniert auf Rechnern, auf denen Sie nichts installieren dürfen, und bietet dieselbe Vertraulichkeit wie ein lokales Werkzeug.

Datenschutz: Konfigurationen enthalten Geheimnisse

Datenbankpasswörter, API-Tokens, URLs privater Registries und interne Hostnamen landen in Konfigurationsdateien, manchmal versehentlich. Wer sie auf einer Website umwandelt, die Eingaben serverseitig verarbeitet, legt diese Werte offen. Hier laufen Parsen und Schreiben per WebAssembly im Tab, ohne Netzwerkanfrage für Ihre Inhalte, nachprüfbar im Netzwerk-Tab der Entwicklertools. Keine Daten überschreiten eine Netzwerkgrenze, und Ihre Konfiguration bleibt vollständig unter Ihrer Kontrolle.

Häufige Fragen

Werden meine Konfigurationsdateien hochgeladen?
Nein. Die Umwandlung läuft per WebAssembly in Ihrem Browser. Der eingefügte Inhalt verlässt die Seite nie.
Warum sind meine YAML-Kommentare verschwunden?
Kommentare sind keine Daten und gehen beim Parsen verloren; JSON kann ohnehin keine enthalten. Behalten Sie die kommentierte Quelldatei als Referenz.
Kann ich eine Kubernetes-Datei mit mehreren Dokumenten umwandeln?
Nicht in einem Schritt. Teilen Sie die Datei an den ----Trennern und wandeln Sie jedes Dokument einzeln um.
Warum scheitert JSON nach TOML mit „invalid type: null“?
TOML hat keinen Null-Wert. Entfernen Sie Schlüssel mit null oder geben Sie ihnen einen leeren String oder einen Standardwert, dann erneut umwandeln.
Wird „yes“ zu true?
Nein. Der Parser folgt YAML 1.2, in dem nur true und false Booleans sind. Schreiben Sie true oder false in die Quelle, wenn Sie Booleans in der Ausgabe brauchen.
Kann ich YAML direkt in TOML umwandeln?
Ja. Wählen Sie YAML als Eingabe und TOML als Ausgabe. Intern geht es über JSON, daher gelten die TOML-Grenzen (Tabelle auf oberster Ebene, kein null).

Verwandtes Tool: Um die JSON-Seite einer Umwandlung zu formatieren oder zu prüfen, nutzen Sie den JSON-Formatierer und Validator.