KI auf dem Gerät – professionell und privat.

YAML-zu-JSON-Konverter

YAML zu JSON mit Manifesten, Merge-Keys und Ankern

  • Nichts wird hochgeladen
  • Mehrere Dokumente
  • Merge-Keys aufgelöst
  • Zeile und Spalte bei Fehlern

Eine .yaml- oder .yml-Datei ablegen

Oder unten in den Editor einfügen. Bis 25.0 MB im kostenlosen Tarif.

Beispiele:

YAML-Quelltext

JSON-Ausgabe

Ausgabe
Einzug
Einzug

Wie das JSON umbrochen wird. Minimiert ist eine Zeile ohne Leerraum.

Dokumente
Dokumente

Was mit einer Datei geschieht, die mehrere durch --- getrennte Dokumente enthält.

Ordnet Schlüssel nach Codepunkt, damit zwei Umwandlungen derselben Daten sauber vergleichbar sind.

Doppelte Schlüssel
Doppelte Schlüssel

JSON kann nicht beide Werte halten. Eine Änderung liest das Dokument neu.

NaN und Infinity
NaN und Infinity

JSON hat für beides kein Literal. Wählen Sie, was mit .nan, .inf und -.inf geschieht.

Zeitstempel
Zeitstempel

Daten bleiben genau so, wie sie getippt wurden, sofern Sie nicht ISO 8601 wählen.

Pro

Pro. Alle Dokumente aller wartenden Dateien in einem JSON-Array.

Kostenlos wird eine Datei bis 25.0 MB umgewandelt. Alle Ausgabeoptionen sind enthalten.

YAML in JSON konvertieren

  1. 1

    YAML einfügen oder ablegen

    Fügen Sie den Text in den Editor ein, ziehen Sie eine .yaml- oder .yml-Datei auf die Ablagefläche oder öffnen Sie eines der drei Beispiele. Die Umwandlung läuft beim Tippen mit — Sie müssen keine Schaltfläche drücken, um das Ergebnis zu sehen.

  2. 2

    Ausgabeform wählen

    2 Leerzeichen, 4 Leerzeichen, Tabs oder minimiert. Enthält die Datei mehrere durch --- getrennte Dokumente, entscheiden Sie, ob daraus ein JSON-Array, nur das erste Dokument oder je eine Datei wird. Schalten Sie „Schlüssel sortieren“ ein, wenn die Ausgabe verglichen wird.

  3. 3

    Prüfen, was sich geändert hat

    Unter dem Ergebnis steht, was JSON nicht unverändert übernehmen kann: Werte wie .nan und .inf, als Base64 geschriebene Binärdaten und Tags wie !Ref, die auf den darunterliegenden Wert aufgelöst wurden. Nichts geschieht stillschweigend.

  4. 4

    Konvertieren, dann herunterladen oder kopieren

    „Konvertieren“ erzeugt die Dateien. Danach laden Sie die .json herunter, kopieren sie in die Zwischenablage oder holen einen ganzen Stapel als eine ZIP-Datei. Lässt sich das YAML nicht lesen, nennt die Meldung Zeile, Spalte und den Text ringsum.

Was dieser YAML-zu-JSON-Konverter bietet

YAML einfügen, eine .yaml- oder .yml-Datei ablegen oder ein Beispiel öffnen — das JSON erscheint beim Tippen. Mehrdokument-Manifeste, Merge-Keys, Anker und ungewohnte Tags werden verarbeitet statt abgelehnt, und alles, was die Umwandlung ändern musste, wird unter dem Ergebnis gezählt statt stillschweigend zu geschehen. Wählen Sie 2 Leerzeichen, 4 Leerzeichen, Tabs oder minimierte Ausgabe, sortieren Sie die Schlüssel für saubere Diffs und laden Sie die .json herunter oder kopieren Sie sie.

  • YAML 1.2 Core — Zuordnungen, Sequenzen, Block- und Flow-Stil, mehrzeilige Skalare, Anker, Aliase und Merge-Keys. Die Skalarregeln sind das 1.2-Core-Schema, deshalb bleiben yes und no Zeichenketten.
  • Mehrere Dokumente — Ein durch --- getrenntes Manifest wird zu einem JSON-Array, zu seinem ersten Dokument oder zu je einer Datei. Die vorherige Fassung dieses Werkzeugs lehnte solche Dateien schlicht ab.
  • Vier Ausgabeformen — 2 Leerzeichen, 4 Leerzeichen, echte Tabs oder minimiert in einer Zeile. „Schlüssel sortieren“ bringt jedes Objekt in eine feste Reihenfolge, damit zwei Umwandlungen derselben Daten sauber vergleichbar sind.
  • Fehler mit Position — Meldung, Zeile, Spalte und drei Zeilen Ihres Quelltexts mit einer Markierung unter der Fundstelle — keine Zeilennummer, die aus einem Satz gelesen wurde.
  • Nichts geschieht stillschweigend — Nicht darstellbare Zahlen, Binärdaten und aufgelöste Tags werden unter dem Ergebnis gezählt und benannt, denn jedes davon ist ein Wert, den JSON nicht unverändert übernehmen kann.
  • Stapel und ZIP — Mit Pro bis zu 50 Dateien in der Warteschlange, als ein Archiv laden oder alle Dokumente aller Dateien zu einem JSON-Array zusammenfassen.

Mehrere Dokumente und Kubernetes-Manifeste

Eine YAML-Datei kann mehrere Dokumente enthalten, getrennt durch drei Bindestriche in einer eigenen Zeile. Das ist die übliche Form eines Kubernetes-Manifests — Namespace, Deployment und Service in einer Datei — und so schreiben auch kubectl, kustomize und helm template ihre Ausgabe. JSON kennt keine Entsprechung, also muss ein Konverter sich entscheiden; die meisten entscheiden sich dafür, die Datei abzulehnen.

  • Automatisch — Ein Dokument wird zu einem Objekt, mehrere zu einem Array von Objekten. Das entspricht der Erwartung und ist die Voreinstellung.
  • Immer Array — Immer ein Array, auch bei einem einzelnen Dokument. Sinnvoll, wenn die weiterverarbeitende Stelle stets iteriert und ein einzelnes Objekt sie zerbrechen würde.
  • Nur erstes Dokument — Nimmt das führende Dokument und verwirft den Rest. Nützlich, wenn an eine Datei etwas angehängt wurde, von der Sie nur den Kopf brauchen.
  • Einzelne Dateien — Je eine .json pro Dokument, nummeriert und mit führenden Nullen, damit eine Ordneransicht in der ursprünglichen Reihenfolge sortiert. Keiner der hier verglichenen Konkurrenten bietet das.
  • Leere Dokumente zählen mit — Eine Folge von --- ohne Inhalt dazwischen ist eine Folge von null-Dokumenten. Sie bleiben erhalten statt zu verschwinden, denn ihre Positionen tragen in einem Patch Bedeutung.

Anker, Aliase und Merge-Keys

In YAML lässt sich ein Knoten mit &anker benennen und später mit *alias wiederverwenden, und eine Zuordnung kann eine andere mit dem Merge-Key << aufnehmen. Zusammen sind das die Mittel, mit denen docker-compose-Dateien, GitLab-CI-Pipelines und Helm-Werte Wiederholungen vermeiden. JSON kennt nichts davon, also muss jede Referenz an Ort und Stelle ausgeschrieben werden — und der Umgang mit dem Merge-Key entscheidet zwischen einem richtigen Ergebnis und einem plausiblen falschen.

  • Aliase werden ausgeschrieben — Jeder referenzierte Knoten erscheint dort, wo er verwendet wird. Zwei Aliase auf denselben Anker erzeugen zwei identische Teilbäume, weil JSON nicht ausdrücken kann, dass es derselbe Knoten war.
  • Merge-Keys werden aufgelöst — Ein Dienst mit <<: *common erhält die gemeinsamen Schlüssel eingemischt. Ein streng nach YAML 1.2 arbeitender Parser hinterlässt stattdessen einen wörtlichen Schlüssel "<<" mit einem verschachtelten Objekt — gültiges JSON, falsche Daten, keine Fehlermeldung.
  • Spätere Schlüssel gewinnen — Direkt auf der Zuordnung geschriebene Schlüssel überschreiben die eingemischten. Genau darauf verlassen sich docker-compose und GitLab CI.
  • Die Ausdehnung ist begrenzt — Anker lassen sich so schachteln, dass eine winzige Datei zu Gigabytes wird. Die mögliche Ausdehnung wird vor dem Parsen gemessen, und eine Datei jenseits des Budgets wird in Millisekunden abgelehnt, statt die Seite einzufrieren.

Wie YAML-Typen zu JSON werden

Die Skalarregeln sind das YAML-1.2-Core-Schema, und sie unterscheiden sich von YAML 1.1 an Stellen, die darüber entscheiden, ob ein Wert als Zeichenkette oder als Zahl ankommt. Das falsch zu machen ist kein Formatierungsunterschied — es verändert die Daten.

  • Boolesche Werte sind nur true und false — yes, no, on, off, y und n bleiben Zeichenketten. Unter YAML 1.1 würden sie zu Booleschen Werten — der Grund, warum die Länderkennung NO für Norwegen schon so viele Pipelines zerlegt hat.
  • Zahlen sind dezimal, oktal und hexadezimal — 42, 0o14 und 0x1F sind Zahlen. 1_000 ist eine Zeichenkette, weil Unterstriche zu 1.1 gehören; 0b1010 ebenso, aus demselben Grund.
  • Zeitstempel bleiben, wie sie geschrieben sind — 2001-12-14 ist die Zeichenkette, die Sie getippt haben, kein in Ihre Zeitzone verschobenes Datum. Für eine Normalisierung stellen Sie auf ISO 8601 um; wie viele Werte sich dadurch ändern, steht unter dem Ergebnis.
  • Blockskalare behalten ihre Umbrüche — Ein |-Block behält jeden Zeilenumbruch, ein >-Block faltet sie zu Leerzeichen. Beide kommen als gewöhnliche JSON-Zeichenketten mit genau dem Leerraum an, den das YAML beschrieben hat.
  • Tags lösen sich zum Wert darunter auf — !Ref, !GetAtt, !Sub und jedes andere ungewohnte Tag liefern den Skalar, die Sequenz oder die Zuordnung, an der sie hingen; die Tag-Namen stehen unter dem Ergebnis.

Werte, die JSON nicht darstellen kann

Manches YAML hat in JSON überhaupt keine Entsprechung. Jeder Konverter muss damit etwas tun, und fast alle tun es, ohne es zu sagen. Hier gilt: Nichts ändert sich stillschweigend. Jeder dieser Fälle wird gezählt und benannt, und wo es eine echte Wahl gibt, treffen Sie sie.

  • .nan, .inf und -.inf — JSON hat für keines davon ein Literal. Voreingestellt wird null geschrieben und gezählt, wie viele umgewandelt wurden; alternativ als Zeichenketten, oder die Umwandlung hält an, damit Sie in der Quelle entscheiden.
  • Binärdaten — Ein !!binary-Knoten wird zu einer Base64-Zeichenkette — derselbe Text, der im YAML stand, es geht also nichts verloren, aber es ist jetzt eine Zeichenkette statt Bytes.
  • Zusammengesetzte Schlüssel — Eine Zuordnung oder Sequenz als Schlüssel hat keine JSON-Entsprechung und wird als Text dargestellt. Der Schlüssel bleibt erhalten, statt zu etwas wie [object Object] zu werden, was eine naive Umwandlung erzeugt.
  • Zirkuläre Aliase — Ein Anker, der auf sich selbst zeigt, ist gültiges YAML und unmögliches JSON. Das wird als zirkulärer Alias mit dem Pfad zum Knoten gemeldet, statt irgendwo im Serialisierer zu scheitern.
  • Kommentare — YAML-Kommentare sind keine Daten, und kein JSON-Dokument kann sie halten. Sie entfallen, wie bei jedem Konverter — wichtig zu wissen, wenn die Kommentare die Dokumentation einer Konfiguration trugen.

Doppelte Schlüssel und anderer stiller Datenverlust

Die Fehler, gegen die es sich zu wappnen lohnt, sind nicht die mit einer Fehlermeldung. Es sind die, die ein ordentliches, plausibles, falsches Dokument erzeugen. Ein doppelter Schlüssel ist das klarste Beispiel: YAML erlaubt ihn, JSON kann nicht beide Werte halten, und so verschwindet einer von beiden bei der Umwandlung.

  • Standardmäßig ablehnen — Die Umwandlung hält an und nennt Zeile und Spalte des zweiten Schlüssels. Das ist die sichere Voreinstellung, denn sonst entsteht eine Datei, die konvertiert aussieht und der ein Wert fehlt.
  • Oder den letzten behalten — Nach dem Umstellen läuft die Umwandlung mit „letzter gewinnt“ durch, so wie es die meisten YAML-Werkzeuge tun. Der Unterschied ist, dass Sie es gewählt haben.
  • Die Kehrseite ist ein Tabulator — YAML verbietet Tabulatoren als Einzug. Eine Datei, die in einem Editor mit Tabulatorweite 2 perfekt ausgerichtet aussieht, lässt sich nicht parsen — die Meldung nennt die Zeile.
  • Vor dem Vergleich sortieren — Zwei Exporte derselben Daten können sich allein in der Schlüsselreihenfolge unterscheiden. Sortieren sorgt dafür, dass der Diff die Änderungen zeigt und nicht die Reihenfolge.

Ein 25-MB-Manifest wird auf dem Referenzrechner in wenig mehr als einer Sekunde umgewandelt — und alles davon läuft auf Ihrem Gerät.

Ausgabeoptionen im Überblick

  • Einzug — 2 Leerzeichen, 4 Leerzeichen, echte Tabs oder minimiert in einer Zeile. Alle vier sind kostenlos — bei einem Einzug gibt es keine Qualitätsstufe.
  • Dokumente — Automatisch, immer ein Array, nur das erste Dokument oder je eine Datei pro Dokument.
  • Schlüssel sortieren — Ordnet die Schlüssel jedes Objekts nach Codepunkt, in jeder Sprache gleich, damit die Ausgabe nicht von der Spracheinstellung des Browsers abhängt.
  • Doppelte Schlüssel — Ablehnen und melden oder den letzten behalten. Diese Einstellung geht an den Parser, deshalb wird das Dokument dabei neu gelesen.
  • Nicht darstellbare Zahlen — null, eine Zeichenkette oder die Umwandlung anhalten.
  • Zeitstempel — Genau so lassen, wie sie geschrieben sind, oder auf ISO 8601 normalisieren.
  • Zusammenfassen (Pro) — Alle Dokumente aller wartenden Dateien, in Warteschlangenreihenfolge zu einem JSON-Array gefaltet.

Warum YAML in JSON umwandeln?

YAML schreiben Menschen, JSON lesen Programme. Die Umwandlung bringt eine bequem zu bearbeitende Konfiguration in ein System, das nur JSON annimmt — und sie ist der schnellste Weg herauszufinden, was eine Datei wirklich sagt, wenn der Einzug nicht mehr eindeutig ist.

  • Schnittstellen nehmen JSON — Machen Sie aus einer YAML-Konfiguration einen Request-Body, eine Testvorlage oder einen Einstellungsblock für einen Dienst ohne YAML-Parser.
  • Einzug prüfen — Verhält sich ein Manifest nicht wie erwartet, zeigt die Umwandlung die Struktur, die der Parser gesehen hat — oft nicht die, die der Einzug nahelegte.
  • Zwei Konfigurationen vergleichen — Beide umwandeln, Schlüssel sortieren, JSON vergleichen. Reihenfolge und Kommentaränderungen tauchen nicht mehr als Unterschiede auf.
  • Eine JSON-Werkzeugkette speisen — jq, JSON-Schema-Validatoren und jedes JSON-Werkzeug auf dieser Seite arbeiten mit dem Ergebnis.
  • Nichts verlässt Ihr Gerät — Manifeste enthalten Hostnamen, Registries und gelegentlich ein Geheimnis. Die Umwandlung geschieht in der Seite, also wird nichts davon irgendwohin hochgeladen.

Häufige Fragen

Wie funktioniert der YAML-zu-JSON-Konverter?

Fügen Sie Ihr YAML ein oder legen Sie eine .yaml- oder .yml-Datei ab — das JSON erscheint beim Tippen. Wählen Sie 2 Leerzeichen, 4 Leerzeichen, Tabs oder minimierte Ausgabe, legen Sie fest, wie Dateien mit mehreren Dokumenten zusammengefasst werden, und drücken Sie „Konvertieren“, um die Datei zu erzeugen. Alles läuft auf Ihrem Gerät: Das Dokument wird nie hochgeladen, und der Konverter arbeitet nach dem Laden der Seite auch ohne Verbindung weiter.

Werden Kubernetes-Manifeste mit mehreren Dokumenten unterstützt?

Ja, und deswegen kommen die meisten hierher. Eine Datei, deren Dokumente durch --- in einer eigenen Zeile getrennt sind, wird als Strom gelesen. Sie entscheiden, was daraus wird: „Automatisch“ liefert ein Objekt bei einem Dokument und ein JSON-Array bei einem Manifest, „Immer Array“ verpackt immer, „Nur erstes“ nimmt nur das führende Dokument, und „Einzelne Dateien“ schreibt je eine nummerierte .json. Viele Konverter lehnen eine solche Datei schlicht mit einem Parserfehler ab.

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

Alle drei. Anker und Aliase werden an Ort und Stelle ausgeschrieben, da JSON keine Referenzen kennt — jeder referenzierte Knoten erscheint überall dort, wo er verwendet wird. Auch Merge-Keys werden aufgelöst: Ein docker-compose-Dienst mit <<: *common erhält die gemeinsamen Schlüssel direkt eingemischt statt eines wörtlichen Schlüssels "<<" mit einem verschachtelten Objekt darin. Dieses wörtliche Ergebnis ist eine stille Falschantwort — und genau das liefert ein strikter YAML-1.2-Parser, solange das Zusammenführen nicht ausdrücklich aktiviert ist.

Was passiert mit .nan, .inf und anderen Werten, die JSON nicht kennt?

Das entscheiden Sie, und der Konverter nennt die Anzahl. JSON hat kein Literal für NaN oder Infinity, deshalb schreiben die meisten Werkzeuge stillschweigend null. Hier bleibt null die Voreinstellung, aber die Anzahl steht unter dem Ergebnis; alternativ werden sie als Zeichenketten "NaN", "Infinity" und "-Infinity" geschrieben, oder die Umwandlung hält an, damit Sie es in der Quelle klären.

Wie werden YAML-Typen zu JSON?

Zuordnungen werden zu Objekten, Sequenzen zu Arrays. Skalare folgen dem YAML-1.2-Core-Schema: true und false sind Boolesche Werte, ~ und null sind null, einfache Ganz- und Gleitkommazahlen sind Zahlen, alles andere ist eine Zeichenkette. Deshalb bleiben yes, no, on und off Zeichenketten, und 1_000 bleibt eine Zeichenkette, weil Unterstriche zu YAML 1.1 gehören. Mehrzeilige Blockskalare behalten ihre Zeilenumbrüche exakt.

Was macht der Konverter mit doppelten Schlüsseln?

Er lehnt die Datei standardmäßig ab und zeigt Zeile und Spalte des zweiten Schlüssels, denn ein doppelter Schlüssel bedeutet Datenverlust: JSON kann nicht beide Werte halten, also verschwindet einer. Wollen Sie trotzdem konvertieren, stellen Sie auf „Letzten behalten“ um — so verhalten sich die meisten YAML-Werkzeuge. In beiden Fällen erfahren Sie, dass es das Duplikat gibt, und genau das lassen andere Konverter weg.

Funktioniert das mit CloudFormation, Helm oder anderem YAML mit Tags?

CloudFormation-Vorlagen lassen sich konvertieren. Tags wie !Ref, !GetAtt und !Sub werden auf den Skalar, die Sequenz oder die Zuordnung darunter aufgelöst, und die verwendeten Tag-Namen stehen unter dem Ergebnis, damit nichts unbemerkt verloren geht. Konverter mit den üblichen Voreinstellungen melden bei allen dreien einen Fehler wegen unbekannter Tags. Helm-Vorlagen mit {{ }}-Platzhaltern sind erst nach dem Rendern gültiges YAML — führen Sie also zuerst helm template aus.

Was passiert, wenn mein YAML ungültig ist?

Sie erhalten die Meldung des Parsers, die Zeile, die Spalte und drei Zeilen Ihres eigenen Quelltexts mit einer Markierung genau an der Fundstelle — keine Zeilennummer, die aus einem Text herausgelesen wurde. Häufige Ursachen sind ein Tabulator als Einzug, eine nicht geschlossene Flow-Sequenz, ein fehlendes Anführungszeichen und ein Alias ohne definierten Anker; jede erzeugt ihre eigene Meldung. Zusätzlich erscheint ein Link zum Werkzeug JSON zu YAML, falls Sie die Richtung vertauscht haben.

Wie groß darf die Datei sein?

Kostenlos konvertieren Sie Dateien bis 25 MB, eine nach der anderen. Auf dem Referenzrechner braucht ein 25-MB-Manifest wenig mehr als eine Sekunde für Parsen und Serialisieren, und zwar vollständig abseits der Oberfläche, sodass die Seite währenddessen bedienbar bleibt. Pro hebt die Grenze auf das an, was Ihr Gerät leistet, nimmt bis zu 50 Dateien in die Warteschlange, liefert einen Stapel als eine ZIP-Datei und kann alle Dokumente aller Dateien zu einem einzigen JSON-Array zusammenfassen.

Ist eine YAML-Datei mit tausenden Ankern gefahrlos einzufügen?

Ja. Eine kurze YAML-Datei lässt sich so schreiben, dass ihre Anker sich zu Gigabytes aufblähen — neun Anker mit je neun Aliasen sind 324 Byte und wachsen auf rund 387 Millionen Knoten. Dieser Konverter misst die mögliche Ausdehnung, bevor überhaupt geparst wird, und lehnt die Datei in wenigen Millisekunden ab. Werkzeuge, die den Text direkt an einen Parser geben, blockieren den Tab mehrere Sekunden und stürzen dann ab.

4.8von 5

aus 76 Bewertungen

Dieses Tool bewerten

Auf einen Stern tippen — geht schnell