KeroTools

YAML in JSON und Zurück Umwandeln

Wandeln Sie YAML-Dateien in JSON oder JSON in YAML um, sofort — kostenloses Tool für Entwickler.

Eingabe
0 Zeichen
Ausgabe

Ihre Datei bleibt auf Ihrem Gerät

Nichts, das später zu löschen wäre

Sicher für Pipeline- und Secret-Dateien

Läuft in jedem modernen Browser

So funktioniert es

  1. 1

    Fügen Sie YAML oder JSON ein

    Eine Pipeline-Definition, ein Kubernetes-Manifest, eine Compose-Datei, eine Sprachdatei oder eine API-Nutzlast.

  2. 2

    Lesen Sie die Warnungen

    Umtypisierte Werte, verlorene Kommentare und doppelte Schlüssel werden aufgelistet, bevor Sie die Ausgabe mitnehmen.

  3. 3

    Kopieren Sie das Ergebnis

    Nehmen Sie es in ein Repository, einen Anfragekörper, eine Konfigurationsdatei oder eine Testvorlage mit.

Warum dieses Tool

Geratene Typen werden gemeldet

Jeder Wert ohne Anführungszeichen, den YAML als Wahrheitswert, Zahl oder Datum läse, wird Ihnen vorher gezeigt.

Das Norwegen-Problem wird erkannt

Ein nacktes NO ist weit häufiger ein Ländercode als das Wort falsch, und Sie erfahren, was Sie bekommen haben.

Führende Nullen überleben

Telefonnummern, Postleitzahlen und Kennungen behalten die Null, die eine oktale Lesart verschlingen würde.

Kommentarverlust wird berichtet

JSON kennt keine Kommentare, also erfahren Sie, wie viele verschwinden, statt es im Review zu entdecken.

Anker und Aliasse werden erklärt

Geteilte Knoten werden auf dem Weg zu JSON aufgelöst, und die Auflösung ist sichtbar — nichts ändert sich hinter Ihrem Rücken.

Nichts verlässt den Browser

Pipeline-Dateien, Manifeste und Playbooks werden auf dieser Seite umgewandelt und nirgends hochgeladen.

YAML errät, was Ihre Werte bedeuten, und diese Ratespiele haben berühmte Opfer

JSON verlangt von Ihnen zu sagen, was ein Wert ist: Anführungszeichen machen eine Zeichenkette, nackte Ziffern eine Zahl, und nichts ist mehrdeutig. YAML schließt stattdessen, und dieser Schluss ist die größte Überraschungsquelle des Formats. Der bekannteste Fall hat einen Namen — das Norwegen-Problem. Schreiben Sie eine Liste von Ländercodes, und der Eintrag `NO` kommt nicht als die Zeichenkette an, die Norwegen erwartet; nach den Regeln von YAML 1.1 kommt er als der Wahrheitswert falsch an, denn die Spezifikation führt `y`, `yes`, `n`, `no`, `on`, `off`, `true` und `false` in jeder Schreibweise als boolesche Literale. Dieselbe Regel macht aus Ontarios `ON` ein wahr, aus einer Spalte von `Y`- und `N`-Antworten Wahrheitswerte und aus dem `NO` eines chemischen Datensatzes ein falsch. Schlimmer noch: Die Parser sind uneins. YAML 1.2 hat die Liste auf `true` und `false` verengt, aber sehr viel Software implementiert weiterhin 1.1 oder etwas dazwischen, sodass dieselbe Datei in Python, Go und Ruby Verschiedenes bedeutet. Die Abhilfe ist ein einziges Anführungszeichen; das Schwere ist zu wissen, wo Sie es brauchen. Genau dafür sind die Warnungen hier da.

Zahlen, die nicht die Zahlen sind, die Sie geschrieben haben

Die zweite Familie von Überraschungen ist leiser als die erste, weil sie einen Wert erzeugt statt eines Fehlers. Eine führende Null hat in YAML 1.1 Bedeutung: `0755` ist oktal und ergibt 493, was passt, wenn Sie Dateirechte meinten, und in jedem anderen Fall falsch ist. Eine Telefonnummer, geschrieben als `0170123456`, hört damit auf, diese Zeichenkette zu sein, und eine Kennung, die mit `08` oder `09` beginnt, ist nicht einmal gültiges Oktal — die Parser teilen sich also zwischen Fehler werfen und auf eine Zeichenkette zurückfallen, sodass dieselbe Datei auf einem Rechner sauber lädt und auf einem anderen scheitert. Versionsnummern leiden anders: `1.10` ist eine Fließkommazahl, und die behält keine nachgestellten Nullen, also kommt der Wert als 1.1 zurück und Ihre Abhängigkeit zeigt nun auf eine andere Veröffentlichung. YAML 1.1 verstand außerdem Sexagesimalzahlen, weshalb `12:30:00` als 45000 ankommen konnte und eine MAC-Adresse sich in eine sehr große Ganzzahl verwandelte. Und ein datumsähnlicher Wert wie `2026-07-31` wird zu einem Datumsobjekt statt zu einer Zeichenkette geparst — deshalb kommt ein Versionsfeld oder eine Rechnungsnummer in einer Sprache als Zeitstempel und in einer anderen als Text an.

Das deutsche Dezimalkomma ist in YAML keine Zahl, und das ist gut so

Hier trifft die Typenraterei auf eine Schreibgewohnheit, die im deutschsprachigen Raum überall vorkommt, und ausnahmsweise fällt das Ergebnis zu Ihren Gunsten aus. YAML kennt nur den Punkt als Dezimaltrennzeichen. `1,5` ist deshalb keine Zahl, sondern eine Zeichenkette — und `1.5` ist eine Zahl. Das ist die richtige Regel, aber sie erzeugt zwei stille Fehler. Der erste: Ein Betrag, den jemand als `preis: 19,90` schreibt, kommt als Text an, und die Anwendung, die damit rechnen will, addiert entweder nichts oder wirft an einer ganz anderen Stelle einen Fehler. Der zweite ist unangenehmer: Ein Tausenderpunkt in deutscher Schreibweise, etwa `1.500`, ist für YAML eine gültige Fließkommazahl mit dem Wert 1,5. Der Wert ist nicht falsch formatiert, er ist um den Faktor tausend falsch, und nichts meldet das. Dasselbe gilt für Datumsangaben: `31.07.2026` bleibt Text, während das ISO-Format `2026-07-31` in ein Datumsobjekt umgewandelt wird, sodass zwei Felder derselben Datei in verschiedenen Typen ankommen. Die Regel, die all das erledigt, ist dieselbe wie überall in YAML: Alles, womit Sie nicht rechnen wollen, gehört in Anführungszeichen.

Die Umwandlung nach JSON verliert etwas, und Kommentare sind das, was Sie vermissen werden

YAML wird oft als Obermenge von JSON beschrieben, und für Daten stimmt das beinahe — aber eben nur für Daten. Was YAML hinzufügt, übersteht den Hin- und Rückweg nicht. Kommentare sind der offensichtliche und schmerzhafte Verlust: Ein Kubernetes-Manifest, eine CI-Pipeline oder ein Ansible-Playbook besteht typischerweise zur Hälfte aus Erklärung, und eine Reise durch JSON löscht jede Zeile davon stillschweigend — so landet eine Reviewerin vor einer Konfiguration, deren Begründung sich verflüchtigt hat. Anker und Aliasse sind der zweite Verlust. YAML erlaubt, einen Knoten einmal mit `&defaults` zu definieren, ihn mit `*defaults` zu referenzieren und ihn per Merge-Schlüssel in andere Zuordnungen einzumischen; JSON kennt dieses Konzept nicht, also muss die Umwandlung jede Referenz zu einer Kopie auflösen. Das Dokument bedeutet weiterhin dasselbe, aber die geteilte Definition ist fort, und eine spätere Änderung, die fünf Stellen treffen sollte, trifft nun eine. YAML erlaubt außerdem mehrere Dokumente in einem Strom und Schlüssel, die keine Zeichenketten sind — beides hat kein JSON-Gegenstück. Dieses Werkzeug meldet jeden dieser Punkte, statt sie klanglos auszuführen.

Ein YAML-Parser lässt sich zum Bauen von Objekten überreden, und das ist eine Codeausführungslücke

Das ist die Sicherheitseigenschaft, die YAML von JSON trennt, und sie gehört klar gesagt, weil die Voreinstellungen historisch falsch waren. YAML unterstützt Tags, die dem Parser sagen, welchen Typ er konstruieren soll, und mehrere Sprachanbindungen haben das wörtlich umgesetzt: Ein Dokument mit `!!python/object/apply:os.system` weist einen naiven Loader an, genau diese Funktion mit den von Ihnen gelieferten Argumenten aufzurufen. In PyYAML tat die Funktion namens `load` jahrelang genau das, während `safe_load` es nicht tat — das Lesen einer Konfigurationsdatei mit der naheliegendsten Funktion war also Codeausführung aus der Ferne, sobald ein Angreifer die Datei beeinflussen konnte. Dieselbe Fehlerklasse trat in Ruby auf, in Java über SnakeYAML und in .NET-Deserialisierern. Die Lehre reicht über YAML hinaus: Jedes Format, das beschreiben kann, welche Klasse zu instanziieren ist, ist ein Codeformat und kein Datenformat, und nicht vertrauenswürdige Eingaben müssen durch einen Loader, der auf einfache Werte, Sequenzen und Zuordnungen beschränkt ist. Dieses Werkzeug konstruiert überhaupt nichts — es parst zu reinen Daten und hört dort auf.

In YAML wohnen die Zugangsdaten, und das ist das Argument für lokale Umwandlung

Sehen Sie sich an, was tatsächlich in YAML geschrieben wird, und das Argument, es auf Ihrem Rechner zu behalten, stellt sich von selbst auf. Es ist das Format der Infrastruktur: Pipelines für kontinuierliche Integration, Kubernetes-Manifeste und -Secrets, Helm-Werte, docker-compose-Dateien, Ansible-Playbooks und -Inventare, Terraform-Variablendateien, Servicedefinitionen. Eine CI-Konfiguration ist in den meisten Repositories die Datei mit der höchsten Dichte an Zugangsdaten überhaupt — sie benennt die Registry, das Deployment-Ziel und die Umgebungen und verweist gewöhnlich auf die Tokens unter genau den Variablennamen, die sie aufsperren. Ein Kubernetes-Secret ist base64-kodiert, nicht verschlüsselt, also Klartext mit einem Zwischenschritt. Und Menschen greifen genau dann zu einem Konverter, wenn eine dieser Dateien gescheitert ist und untersucht werden muss — das Beispiel in der Zwischenablage ist also das echte, kein geschwärztes Muster. Alles auf dieser Seite läuft in JavaScript in Ihrem Browser und stellt keine Anfrage; öffnen Sie vor dem Einfügen das Netzwerk-Panel Ihrer Entwicklerwerkzeuge und beobachten Sie, wie der Zähler stehen bleibt.

Häufige Fehler, die Sie vermeiden sollten

  • Einen Ländercode oder eine Abkürzung ohne Anführungszeichen lassen. Nach YAML-1.1-Regeln sind `NO`, `ON`, `Y` und `N` boolesche Literale — Norwegen wird falsch, Ontario wird wahr.
  • Eine Kennung mit führender Null schreiben. `0755` ist oktal, eine Telefonnummer hört auf, diese Zeichenkette zu sein, und etwas mit `08` am Anfang ist nicht einmal gültiges Oktal.
  • Einen Betrag in deutscher Schreibweise unquotiert lassen. `1,5` wird zu Text, und `1.500` wird zur Zahl 1,5 — also um den Faktor tausend falsch, ohne jede Meldung.
  • Mit einem Tabulator einrücken. Tabulatoren sind in YAML überall als Einrückung verboten, und die Fehlermeldung sagt Ihnen das nicht, weil das Zeichen unsichtbar ist.
  • Nicht vertrauenswürdiges YAML mit einem freizügigen Loader laden. Tags können eine zu konstruierende Klasse benennen — so wurde in PyYAML und SnakeYAML aus dem Lesen einer Datei Codeausführung.

Im Vergleich

AspektDieses WerkzeugOnline-KonverterEin Kommandozeilenwerkzeug
Datei an einen Server gesendetNieMeistens jaNein
Warnt vor geratenen TypenJaNeinSelten
Meldet Kommentare, die verloren gehenJaNeinNein
Erkennt doppelte SchlüsselJaSeltenUnterschiedlich
Konstruiert Objekte aus TagsNieUnterschiedlichVom Loader abhängig
PreisKostenlosKostenlos / kostenpflichtige StufenKostenlos

Funktionen

Beide Richtungen

Von YAML zu JSON und von JSON zu YAML, mit Einrückung und Anführungsstil unter Ihrer Kontrolle.

Warnungen zur Typumwandlung

Jeder implizit typisierte Wert wird mit dem gelesenen und dem vermutlich gemeinten Wert aufgeführt.

Erkennung doppelter Schlüssel

Ein wiederholter Schlüssel überschreibt in den meisten Parsern still; hier wird er gemeldet statt leise angewandt.

Mehrdokument-Ströme

Durch drei Bindestriche getrennte Dokumente werden verarbeitet und auf ein JSON-Array abgebildet statt verworfen.

Anker- und Alias-Auflösung

Geteilte und zusammengeführte Knoten werden mit sichtbarer Auflösung verarbeitet, Merge-Schlüssel eingeschlossen.

Große Dateien möglich

Ein langes Manifest oder eine vollständige Übersetzungsdatei wird ohne Upload und ohne Größengrenze umgewandelt.

Nichts zu installieren

Kein Build-Werkzeug, keine Laufzeitumgebung, keine Abhängigkeiten — es läuft in der Webseite.

Bereit für Arabisch und RTL

Die vollständige Oberfläche in acht Sprachen, einschließlich Arabisch von rechts nach links.

Standardmäßig sicher

Über HTTPS ausgeliefert, ohne Inhaltsverfolgung und ohne Upload an Dritte.

Wer es nutzt

Plattform- und DevOps-Engineering

Prüfen, was ein Manifest tatsächlich sagt, nachdem die Anker aufgelöst sind.

Backend-Entwicklung

Eine JSON-Nutzlast in eine lesbare Konfigurationsdatei verwandeln — oder umgekehrt.

Lokalisierungsteams

Übersetzungsdateien zwischen einem YAML- und einem JSON-basierten Framework bewegen.

Wer eine Pipeline debuggt

Den unquotierten Wert finden, den ein Parser als Wahrheitswert gelesen hat.

Häufig Gestellte Fragen

Nein. Alles läuft lokal im Browser — Ihr Text wird nie hochgeladen, gespeichert oder geteilt.

Ja — komplett kostenlos, ohne Konto und ohne Limits.