JSON-zu-YAML-Konverter

Konvertieren Sie JSON in das YAML-Format mit Echtzeit-Vorschau.

Ihre Daten verlassen niemals Ihr Gerät
Einrückung:

So funktioniert es

  1. Fügen Sie Ihre JSON-Daten in das linke Textfeld ein oder tippen Sie sie.
  2. Wählen Sie Ihre bevorzugte Einrückung (2 oder 4 Leerzeichen).
  3. Die YAML-Ausgabe erscheint rechts in Echtzeit. Klicken Sie auf Kopieren, um sie zu kopieren, oder auf Herunterladen, um sie als Datei zu speichern.

Häufige Fragen

Sind meine Daten sicher?

Ja, die Konvertierung erfolgt vollständig in Ihrem Browser. Es werden keine Daten an einen Server gesendet.

Welche Einrückungsoptionen sind verfügbar?

Sie können 2 oder 4 Leerzeichen für die Einrückung wählen. Standard sind 2 Leerzeichen.

Kann ich die Ausgabe direkt kopieren?

Ja, klicken Sie auf den Button „Kopieren" unter dem Ausgabe-Textfeld, um das YAML in die Zwischenablage zu kopieren.

So funktioniert es

  1. JSON einfügen: Geben Sie beliebiges gültiges JSON ein, von flachen Schlüssel-Wert-Paaren bis zu tief verschachtelten Objekten und Arrays.
  2. Sofort konvertieren: Das Tool wandelt JSON in YAML mit korrekter Einrückung um, entfernt Anführungszeichen von Zeichenketten-Schlüsseln und übersetzt null-, Boolean- und numerische Typen.
  3. Ausgabe konfigurieren: Stellen Sie die Einrückungsbreite (2 oder 4 Leerzeichen) ein und wählen Sie zwischen Block- oder Flow-Stil für Sammlungen.
  4. YAML kopieren: Das Ergebnis ist bereit, in Konfigurationsdateien, CI/CD-Pipelines oder Kubernetes-Manifeste eingefügt zu werden.

Warum JSON in YAML konvertieren?

YAML ist das bevorzugte Konfigurationsformat für Infrastruktur-Tools wie Kubernetes, Docker Compose, GitHub Actions, Ansible und Helm-Charts, es ist menschenlesbarer als JSON, unterstützt Kommentare und verlangt keine Anführungszeichen für jede Zeichenkette. Das Konvertieren von API-Antworten, package.json-Abschnitten oder Datenstrukturen von JSON in YAML ist eine häufige Aufgabe in DevOps- und Backend-Workflows. YAMLs einrückungsbasierte Struktur ist für Menschen leichter lesbar, während JSON für APIs und programmatische Erzeugung bevorzugt wird, dieser Konverter schlägt die Brücke zwischen beiden.

Typ-Zuordnung

Was ist JSON-zu-YAML-Konvertierung?

JSON-zu-YAML-Konvertierung uebersetzt einen Baum von Schluessel-Wert-Paaren von einem Serialisierungsformat in ein anderes, waehrend die zugrundeliegenden Daten erhalten bleiben. Beide Formate beschreiben dieselbe Datenform (Strings, Zahlen, Booleans, null, Arrays, Objekte), aber JSON verwendet geschweifte und eckige Klammern, waehrend YAML Einrueckung und Bindestriche verwendet. Dieselbe Konfiguration «name: app, version: 1, ports: 80, 443» kann in beiden ausgedrueckt werden, und Konverter bewegen sich zwischen ihnen, ohne die Bedeutung zu verlieren.

JSON, erfunden von Douglas Crockford um 2001 und standardisiert als RFC 4627 im Jahr 2006 und ECMA-404 im Jahr 2013, ist die Lingua Franca der Web-APIs. YAML 1.0 (2001), 1.1 (2005) und 1.2 (2009) von Clark Evans, Ingy doet Net und Oren Ben-Kiki wurde als Superset von JSON konzipiert, optimiert fuer menschliche Lesbarkeit, mit Unterstuetzung fuer Kommentare, mehrzeilige Strings, Anker und Aliase. Moderne DevOps-Tools (Kubernetes, Docker Compose, GitHub Actions, Ansible, Helm) haben YAML standardmaessig uebernommen, weil Konfigurationen von Menschen geschrieben und ueberprueft werden.

Dieser Konverter paart beide Formate nebeneinander. Fuegen Sie JSON links ein, klicken Sie auf JSON zu YAML, und das rechte Panel aktualisiert sich mit gueltigem YAML in Ihrer gewaehlten Einrueckungstiefe (2 oder 4 Leerzeichen). Die Umkehrtaste fuehrt denselben Prozess rueckwaerts aus. Die Konvertierung verwendet die js-yaml-Bibliothek (Vitaly Puzrin, 2011), die von jsDelivr geladen wird und die YAML 1.2-Spezifikation genau genug implementiert, um Kubernetes-Manifeste, Helm-Charts und OpenAPI-Spezifikationen hin und her zu konvertieren.

Was im Konverter steckt

Die Oberflaeche verwendet ein Zwei-Panel-Grid-Layout: JSON links, YAML rechts. Auf Bildschirmen, die schmaler als 768 Pixel sind, stapelt sich das Layout vertikal. Ueber den Panels koennen Sie mit einem Einrueckungswahlschalter 2 oder 4 Leerzeichen pro Ebene waehlen. Die aktive Auswahl wird hervorgehoben, und die Einrueckung gilt fuer beide Konvertierungsrichtungen.

Jedes Panel hat seine eigenen Aktions-Schaltflaechen. Das JSON-Panel bietet JSON zu YAML (konvertieren) und Loeschen. Das YAML-Panel bietet YAML zu JSON (umkehren), Kopieren (Zwischenablage) und .yaml herunterladen (als Datei mit der Erweiterung .yaml und UTF-8-Kodierung speichern). Das Fehler-Banner unter dem Konverter zeigt Parsing-Fehler mit Zeilennummer und einer kurzen Meldung an, sodass Sie ungueltige Eingaben korrigieren koennen, ohne das Tool zu verlassen.

Unter der Haube verwendet die JSON-zu-YAML-Konvertierung JSON.parse plus die dump-Funktion von js-yaml. Die YAML-zu-JSON-Richtung verwendet die load-Funktion von js-yaml plus JSON.stringify mit 2-Leerzeichen-Einrueckung. Beide Richtungen sind reine Funktionen der Eingabe, kein Zustand wird zwischen Konvertierungen mitgefuehrt, und das Aktualisieren der Seite setzt alles zurueck.

Geschichte und Hintergrund

Douglas Crockford spezifiziert JSON (2001)

Douglas Crockford dokumentierte die JSON-Syntax im April 2001 bei State Software, nachdem er erkannt hatte, dass die Object-Literal-Syntax von JavaScript als sprachunabhaengiges Datenformat dienen koennte. Die Spezifikation war absichtlich minimal: sechs Typen, zwei Sammlungen, keine Kommentare, kein Schema. RFC 4627 folgte 2006 und ECMA-404 2013. Der Minimalismus ist genau das, was JSON im Web allgegenwaertig machte.

YAML 1.0 veroeffentlicht (2001)

Clark Evans, Ingy doet Net und Oren Ben-Kiki veroeffentlichten YAML 1.0 im Mai 2001, im gleichen Jahr wie JSON. Das Akronym stand urspruenglich fuer Yet Another Markup Language, wurde aber zu YAML Ain't Markup Language rueckbenannt, um zu verdeutlichen, dass YAML auf Konfigurationsdaten abzielt, nicht auf Dokument-Markup. Die Spezifikation 1.0 war ambitioniert, sie unterstuetzte Anker, Aliase, Multi-Dokument-Streams, benutzerdefinierte Tags und Kommentare.

YAML 1.1 und das Norwegen-Problem (2005)

YAML 1.1 (Januar 2005) verschaerfte die Spezifikation, behielt aber das beruehmte Boolean-Coercion-Verhalten bei, bei dem die Strings yes, no, on, off, y, n, true, false sowie ihre grossgeschriebenen Varianten alle zu Booleans werden. Das ist das Norwegen-Problem: Der nicht zitierte ISO-Laendercode NO wird zum Boolean false. Der Bug betraf fruehe Kubernetes-Nutzer, bis YAML 1.2 (2009) die alternativen Boolean-Schreibweisen entfernte.

YAML 1.2 erklaert JSON als Untermenge (2009)

YAML 1.2 (Oktober 2009) machte JSON explizit zu einer strengen Untermenge von YAML, sodass jedes gueltige JSON-Dokument auch ein gueltiges YAML-Dokument ist. Das war ein grosser Design-Sieg: Tools, die YAML 1.2 unterstuetzten, konnten JSON kostenlos parsen, was die Implementierung von Konvertern und Validatoren vereinfachte. Die Version, die heute in den meisten Tools noch verwendet wird, ist 1.2 oder ein 1.1-kompatibles Profil.

Kubernetes liefert YAML-Manifeste (2015)

Kubernetes 1.0, von Google im Juli 2015 veroeffentlicht, definierte Cluster-Ressourcen (Pods, Deployments, Services) mithilfe von YAML-Manifesten. Die Wahl wurde durch Lesbarkeit fuer Ops-Teams getrieben, die an Texteditoren und Versionskontrolle gewoehnt waren. Helm (2016) fuegte Templating obendrauf hinzu, GitHub Actions (2018) uebernahm YAML fuer Workflows, und Ansible-Playbooks (2012 bis 2018) festigten YAML als die dominierende DevOps-Konfigurationssprache.

js-yaml wird zur faktischen JavaScript-Bibliothek (ab 2011)

Vitaly Puzrin veroeffentlichte js-yaml 2011 als reinen JavaScript-Port von PyYAML. Folgende Versionen (2.0 in 2014, 3.0 in 2015, 4.0 in 2021) verfolgten die YAML 1.2-Spezifikation, fuegten Schemas hinzu, um sich von gefaehrlichen Funktionen abzumelden, und erreichten ueber 50 Millionen woechentliche npm-Downloads. Die Bibliothek wird von webpack, parcel und esbuild fuer jede browserseitige YAML-Arbeit gebuendelt und ist das, was dieser Konverter unter der Haube verwendet.

Praktische Workflows

Verfassen von Kubernetes-Manifesten

Wenn Sie einen Pod oder ein Deployment via kubectl run --dry-run=client -o json erzeugen, erhalten Sie JSON. Fuegen Sie es hier ein, klicken Sie auf JSON zu YAML, und Sie haben ein Manifest, das bereit ist, in git committet zu werden. Die Konvertierung bewahrt verschachtelte Specs, Umgebungsvariablen und Ressourcenbeschraenkungen genau so, wie Kubernetes sie lesen wird.

Docker Compose Service-Definitionen

Ein Teamkollege sendet Ihnen einen JSON-Snippet fuer einen neuen Dienst. Fuegen Sie es ein, konvertieren Sie und legen Sie das YAML in Ihre docker-compose.yml. Die 2-Leerzeichen-Einrueckung ist der Compose-Standard, also lassen Sie die Einrueckungsoption auf 2.

GitHub Actions Workflows

Wenn Sie einen Workflow aus einem JSON-basierten Template-Generator geruest stellen oder einen Schritt aus einer JSON-API-Antwort kopieren, fuegen Sie ihn hier ein und konvertieren ihn. Die Ausgabe geht direkt in .github/workflows/*.yml. Beachten Sie, dass GitHub Actions in einigen Feldern auch JSON akzeptiert, aber YAML ist die kanonische Form.

Ansible-Playbooks

Ansible-Inventare beginnen oft ihr Leben als JSON, exportiert aus einer CMDB oder einer Asset-Datenbank. Einfuegen, in YAML konvertieren, und Sie haben eine Hosts-Datei oder einen Playbook-Header, der zum von Ansible erwarteten Stil passt. Verwenden Sie 2-Leerzeichen-Einrueckung, um dem Stilhandbuch der Ansible-Community zu entsprechen.

Helm-Chart-Werte

Ein Anbieter liefert JSON-Beispielkonfigurationen fuer sein Helm-Chart. Konvertieren Sie zu YAML und legen Sie es in values.yaml. Die Konvertierung respektiert verschachtelte Schluessel (image.repository, image.tag, resources.limits.memory) genau so, wie Helm sie erwartet.

OpenAPI 3-Spezifikationen

Swagger Editor exportiert OpenAPI-Spezifikationen sowohl als JSON als auch als YAML. Wenn ein Tool JSON ausgibt, Ihr Team aber YAML in der Versionskontrolle verwendet (oder umgekehrt), ist dieser Konverter der schnellste Weg, Formate zu wechseln, ohne Node, Python oder yq zu starten.

Haeufige Fallstricke

Das Norwegen-Problem (yes, no, on, off als Booleans)

In YAML 1.1 sind die Strings yes, no, on, off, y, n, true, false (und ihre grossgeschriebenen Varianten) alle Booleans. So wird der nicht zitierte ISO-Laendercode NO zum Boolean false. js-yaml 4.x verwendet standardmaessig YAML 1.2, das nur true und false als Booleans behandelt, aber aeltere YAML-Parser koennen immer noch stolpern. Zitieren Sie zweideutige Strings explizit, wenn Sie Tool-Versionen mischen.

Tabs sind keine gueltige YAML-Einrueckung

YAML verwendet Leerzeichen, nicht Tabs, fuer Einrueckung. Wenn Ihr Editor standardmaessig Tabs einfuegt, schlaegt das konvertierte YAML beim Parsen in Kubernetes, Helm oder einem strengen YAML-Loader fehl. Konfigurieren Sie Ihren Editor fuer .yaml- und .yml-Dateien auf 2 oder 4 Leerzeichen, oder fuehren Sie vor dem Commit einen Linter (yamllint) aus.

Anker und Aliase ueberleben die JSON-Konvertierung nicht

YAML unterstuetzt Anker (&name) und Aliase (*name) zur Wiederverwendung von Werten. Wenn Sie YAML in JSON konvertieren, werden die Anker inline expandiert, weil JSON kein aequivalentes Feature hat. Die umgekehrte JSON-zu-YAML-Konvertierung fuehrt Anker nicht automatisch wieder ein. Wenn Sie Anker brauchen, schreiben Sie sie nach der Konvertierung von Hand.

Mehrzeilige Strings benoetigen explizite Indikatoren

Ein JSON-String mit eingebetteten Newlines (Hello\nWorld) konvertiert sich zu YAML mit dem Block-Literal-Skalar (|) oder dem Block-Folded-Skalar (>). js-yaml waehlt die richtige Form, aber wenn Sie das Ergebnis von Hand bearbeiten, denken Sie daran, dass | Newlines bewahrt und > sie in Leerzeichen faltet.

Grosse Zahlen verlieren an Praezision

JavaScript-Zahlen sind 64-Bit IEEE 754 Floats, daher verlieren Ganzzahlen jenseits von 2 hoch 53 (etwa 9 Quadrillionen) an Praezision, wenn sie von JSON.parse geparst werden. Die Konvertierung in YAML bewahrt den verlustbehafteten Wert, nicht das Original. Wenn Ihre Daten BigInt-Style-Identifizierer haben, kodieren Sie sie als Strings in JSON, bevor Sie konvertieren.

Kommentare gehen bei YAML zu JSON verloren

YAML unterstuetzt #-Kommentare, JSON nicht. Wenn Sie YAML mit Kommentaren zurueck in JSON konvertieren, werden die Kommentare entfernt, weil JSON keine Syntax dafuer hat. Wenn Sie YAML durch JSON zur Verarbeitung hin und her schicken, erwarten Sie, jede #-Zeile zu verlieren. Tools wie yq oder ruamel.yaml koennen Kommentare bewahren, aber das spezifikationskonforme js-yaml verwirft sie.

Datenschutz und Datenverarbeitung

Alle Konvertierungen laufen in Ihrem Browser ueber die in die Seite gebundelte js-yaml-Bibliothek. Wir senden Ihr JSON oder YAML nicht an einen Server, loggen keine Eingaben und fuehren keine Analysen ueber den Inhalt Ihrer Konvertierungen aus. Die Schaltflaeche Kopieren verwendet die Clipboard-API, die eine Benutzergeste erfordert, und die Schaltflaeche .yaml herunterladen verwendet eine Blob-URL im Speicher, sodass die Datei nie ueber irgendein Netzwerk hin und her geht.

Sobald die Seite geladen ist (einschliesslich der js-yaml CDN-Datei), funktioniert das Tool offline. Sie koennen sich vom Netzwerk trennen und sensible Konfigurationen (API-Schluessel, Datenbank-URLs, interne Servicenamen) konvertieren, ohne dass etwas Ihr Geraet verlaesst. Die js-yaml-Datei wird von jsDelivr mit einem Subresource-Integrity-Hash bedient, sodass das Bundle nicht stillschweigend ausgetauscht werden kann.

Wann dieser Konverter nicht zu verwenden ist

Streaming von Megabyte an Daten

Der Konverter laedt die gesamte Eingabe in den Speicher, parst sie und gibt das Ergebnis in einem Schwung aus. Verwenden Sie fuer JSON- oder YAML-Dateien mit mehreren Megabytes yq oder jq in einer Shell-Pipeline oder einen Streaming-Parser in Ihrer Lieblingssprache. Der Browser ist ueber 5 bis 10 Megabyte nicht das richtige Tool.

Binaere Daten in JSON

Wenn Ihr JSON Base64-kodierte Binaer-Blobs hat, die inspiziert oder modifiziert werden muessen, wird die Konvertierung zu YAML sie nicht entpacken. YAML unterstuetzt getaggte Binaerdaten (!!binary), die js-yaml handhabt, aber die Bytes bleiben Base64. Verwenden Sie einen dedizierten binaeren Editor fuer tatsaechliche Arbeit auf Byte-Ebene.

Schema-Validierung

Dieser Konverter prueft, ob die Eingabe gueltiges JSON oder YAML ist, validiert aber nicht gegen ein Schema (JSON Schema, OpenAPI, Kubernetes CRD, Helm Values). Wenn Sie wissen muessen, ob ein Kubernetes-Manifest fuer einen 1.28-Cluster strukturell korrekt ist, fuehren Sie kubectl --dry-run=server oder ein Tool wie kubeval, kubeconform aus.

Schema-bewusste Refaktorisierung

Wenn Sie ein Feld ueber Hunderte von YAML-Dateien umbenennen oder eine API-Version (apps/v1beta1 zu apps/v1) aktualisieren muessen, verwenden Sie sed, ast-grep oder yq mit expliziten Pfadabfragen. Der Konverter transformiert nur zwischen Formaten, er bearbeitet keinen semantischen Inhalt.

Weitere Fragen

Ist JSON sicherer als YAML?

Fuer Sicherheit, ja. PyYAMLs yaml.load (vor 5.1) und aehnliche permissive Parser konnten beliebigen Code aus nicht vertrauenswuerdigen YAML-Eingaben ueber getaggte Python-Objekte ausfuehren. JSON hat keine solche Funktion, jeder JSON-Parser ist standardmaessig sicher. Moderne YAML-Parser (PyYAML 5.1+, js-yaml seit 4.0) verwenden standardmaessig safe-load, sodass die Luecke kleiner geworden ist, aber JSON ist immer noch der sicherere Standard fuer nicht vertrauenswuerdige Eingaben.

Warum hat YAML Einrueckung statt geschweifter Klammern gewaehlt?

Die YAML-Autoren wollten, dass Konfigurationen wie Gliederungen lesbar sind, also verwendeten sie dieselbe Konvention wie Pythons bedeutsamer Whitespace. Geschweifte und eckige Klammern sind gueltiges YAML (Flow-Style), aber Block-Style mit Einrueckung ist der Standard, weil er fuer Menschen, die in Klartext editieren, natuerlicher scannt. Der Trade-off ist, dass Whitespace bedeutsam wird, was Editoren erwischt, die nachgestellte Leerzeichen automatisch trimmen.

Ist YAML immer eine strenge Obermenge von JSON?

Seit YAML 1.2 (2009), ja. Jedes gueltige JSON-Dokument ist auch ein gueltiges YAML 1.2-Dokument. YAML 1.1 hatte ein paar Randfaelle (sexagesimale Zahlen, das Norwegen-Problem), bei denen die Beziehung lockerer war. Modernes js-yaml verwendet standardmaessig 1.2, sodass die Obermengen-Eigenschaft fuer dieses Tool gilt.

Warum ist Kubernetes-YAML so ausfuehrlich?

Kubernetes-Manifeste haben eine feste Top-Level-Form (apiVersion, kind, metadata, spec) und die Spec enthaelt verschachtelte Objekte, die die internen Go-Structs der API widerspiegeln. Die Ausfuehrlichkeit ist ein Nebeneffekt davon, eine objektorientierte API auf ein flaches Textformat abzubilden. Tools wie Kustomize, Helm und Pulumi reduzieren die Ausfuehrlichkeit, aber das zugrunde liegende YAML ist das, was kubectl tatsaechlich an den Cluster sendet.

Kann ich JSON durch YAML hin und her schicken, ohne Daten zu verlieren?

Fuer das meiste JSON, ja. Strings, Zahlen, Booleans, null, Arrays, Objekte ueberleben alle. Randfaelle umfassen sehr grosse Ganzzahlen (Praezisionsverlust), Unicode-Surrogat-Paare (haengt vom Parser ab) und Schluesselreihenfolge (YAML kann umordnen). Wenn Ihre JSON-Schluessel ihre urspruengliche Reihenfolge beibehalten muessen, verwenden Sie ein Tool, das die Einfuegungsreihenfolge respektiert (Pythons OrderedDict, json-stable-stringify in JavaScript).

Was ist mit TOML und HCL?

TOML (Tom's Obvious Minimal Language, 2013 von Tom Preston-Werner) wird von Cargo (Rust), pyproject.toml (Python) und anderen verwendet. HCL (HashiCorp Configuration Language, 2014) wird von Terraform verwendet. Beide zielen auf den Konfigurationsanwendungsfall ab, verwenden aber unterschiedliche Syntax. Dieser Konverter handhabt nur JSON und YAML. Verwenden Sie fuer TOML oder HCL dedizierte Konverter oder yq mit dem richtigen Plugin.

Verwandte Tools

Kostenloser Online-JSON-Formatierer & -Validator Kostenloser Online-JSON-Formatierer & -Validator Kostenloser XML-zu-CSV-Konverter