Zum Inhalt springen
DEV-TOOL

YAML zu JSON umwandeln

Die `NO`-Falle aus YAML 1.1 ist sichtbar. Anchor und Merge-Keys werden visualisiert. Kubernetes, Compose, GHA und Helm bekommen passgenaue Hinweise statt generischer Fehler.

Läuft lokal im Browser — keine Datei verlässt dein Gerät.

Richtung

Profil

Profil aktiviert zielgruppen-spezifische Hinweise — bleibt nicht-blockierend.

Optionen

Einrückung

Beispiele

Demo-Datei laden — Profil und Lint passen sich an.

YAML-Eingabe

Ausgabe

Noch keine Ausgabe.

Anchor & Alias

Keine Anchors gefunden.

So funktioniert es

  1. 01

    Text oder Code einfügen

    Füge deinen Inhalt in das Eingabefeld ein oder tippe direkt.

  2. 02

    Automatische Verarbeitung

    Das Tool verarbeitet den Inhalt sofort und zeigt das Ergebnis.

  3. 03

    Ergebnis kopieren

    Kopiere das Ergebnis mit einem Klick in die Zwischenablage.

Datenschutz

Alle Berechnungen laufen direkt in deinem Browser. Keine Daten werden auf Server übertragen.

Der Konverter liest YAML 1.2-strict und gibt JSON aus — bidirektional, multi-document-fähig, mit Profil-spezifischen Hinweisen für Kubernetes, Docker Compose, GitHub Actions und Helm. Die Norway-Falle aus YAML 1.1 wird inline angezeigt, Anchors und Merge-Keys bekommen eine Edge-Liste, und beim Rückweg JSON → YAML lassen sich Kommentare aus einer Original-YAML-Quelle positions-treu erhalten.

01 — Anleitung

Wie benutzt du dieses Tool?

  1. YAML in das Eingabe-Feld einfügen, Datei per Drag-and-drop ablegen oder ein Beispiel laden
  2. Profil wählen — Kubernetes, Docker Compose, GitHub Actions, Helm oder Allgemein
  3. Einrückung der JSON-Ausgabe wählen (0/2/4/Tab) und Anchor-Edges + Norway-Lint im Side-Panel beobachten
  4. Mit Copy/Download das JSON übernehmen — oder im zweiten Tab JSON → YAML mit optionaler Comment-Preservation rückkonvertieren

Was macht der YAML-zu-JSON-Konverter?

Der Konverter liest YAML 1.2-strict und gibt JSON aus — bidirektional, mit Multi-Document-Support und profil-spezifischen Hinweisen für die wichtigsten 2026er-YAML-Einsatzgebiete: Kubernetes, Docker Compose, GitHub Actions, Helm.

Pure-client. Jede Eingabe bleibt in deinem Browser. Keine Anmeldung, kein Server-Upload, kein Tracking — du kannst das mit den Browser-Dev-Tools im Netzwerk-Tab selbst überprüfen.

Fünf Eigenschaften unterscheiden ihn von Standard-Konvertern:

  • YAML-1.2-strict mit Norway-Lint. Der Parser läuft im 1.2-strict-Modus — NO, yes, off bleiben Strings. Der Norway-Lint warnt trotzdem, weil viele Downstream-Parser noch 1.1-Mode fahren.
  • Anchor- und Alias-Visualizer. Edge-Liste mit Definitionszeile und allen Verwendungen (*alias und <<-Merge unterschieden) — bevor die Auflösung passiert.
  • Workflow-Profile. Kubernetes-, Compose-, GHA- und Helm-Validatoren prüfen die Pflichtfelder des jeweiligen Tools, ohne den Konverter zum strengen Linter zu machen.
  • Comment-Preservation auf dem Rückweg. JSON → YAML kann optional Kommentare aus einem Original-YAML positions-treu erhalten.
  • Typ-Fidelity-Tabelle. Datetime, Binary, Custom-Tags werden unter dem JSON-Output als Liste angezeigt, damit Typ-Verlust nicht versteckt passiert.

Der Konverter ist kein Live-Editor, sondern ein gezielter Format-Brücker zwischen YAML und JSON. Das Schreiben der YAML-Datei selbst geschieht in deinem Editor — VS Code, Vim, Cursor — mit Schema-Validierung und Auto-Complete. Hier kommt die Datei an, wenn sie strukturell fertig ist und nur noch in eine andere Repräsentation übersetzt werden muss.

Was ist der Norway-Bug und wie behandelt das Tool ihn?

Der Norway-Bug ist die meistzitierte YAML-Falle: unter YAML 1.1 parst NO als Boolean false, weil das Token zur 1.1-Bool-Familie gehört (yes/no/on/off, jede Case-Variante). Eine naive Länderliste wie allowed: [DE, FR, NO, ES] wird zu ['DE', 'FR', false, 'ES'] — Norwegen verschwindet, ohne dass der Parser einen Fehler meldet.

YAML 1.2 hat dieses Verhalten entfernt; nur true und false sind dort noch Boolean. Aber: viele Parser im Wild laufen bis heute defaulted auf 1.1, weil die Aktualisierung Breaking-Change- Charakter hatte. Python’s PyYAML ist bis Version 6 1.1-default, Ruby’s Psych ebenfalls. Tools wie Norway-Land dokumentieren die Geschichte ausführlich.

Der Lint dieses Konverters scannt die Quelle nach genau diesen Token: NO, Yes, off, oktale Integer mit führender 0 (0755), sexagesimale Werte (22:22). Findet er einen Treffer, zeigt er die Zeile, das Token und einen Konkretvorschlag ("NO" zitiert, 0o755 als ausdrücklicher Oktal-Marker). Das Tool blockiert die Konvertierung nicht — es zeigt nur, wo der 1.1/1.2-Riss durch deinen Code geht.

Wofür sind die Workflow-Profile?

Generische YAML-zu-JSON-Konverter sind Format-Konverter ohne Domänenwissen. Sie wissen nicht, dass ein Kubernetes-Manifest ohne apiVersion und kind vom API-Server abgelehnt wird, oder dass GitHub Actions keine YAML-Anchors auflöst.

Die Profile in diesem Konverter füllen genau diese Lücke:

  • Kubernetes — prüft die drei API-Server-Pflichtfelder apiVersion, kind, metadata.name und gibt einen info-level Hinweis aus, wenn ein namespaced Kind (Deployment, Service, …) ohne metadata.namespace aufläuft. Multi-Document-fähig: jede Ressource wird einzeln geprüft.
  • Docker Compose — prüft die Existenz von services: (Pflicht), markiert das in Compose v2 überholte version:-Feld als info, akzeptiert x--prefix-Extensions und flag-t unbekannte Top-Level-Schlüssel.
  • GitHub Actions — prüft on: und jobs: (Pflicht), gibt eine info-Note für fehlendes name: aus, und warnt bei detected YAML-Anchors, weil Actions sie nicht honoriert.
  • Helm — prüft Chart.yaml-Konvention: apiVersion: v2, name, version, type.

Alle Hinweise sind nicht-blockierend. Sie ergänzen die JSON-Ausgabe um Kontext, blockieren sie aber nie. Wer eine strikte Validierung braucht, nutzt kubeval, kustomize, docker compose config, helm lint lokal.

Wie funktioniert der Anchor- und Alias-Visualizer?

YAML-Anchors (&name) und Aliases (*name) sind der DRY-Mechanismus der Sprache. Du definierst ein Stück Konfiguration einmal und verweist mehrfach darauf. << ist der Merge-Key: er merged die Felder der referenzierten Map in die aktuelle Map, mit Override-Möglichkeit.

Das Problem in der Praxis: Sobald eine Datei zwei oder drei Anchors hat, verliert man schnell den Überblick, wo was definiert ist und welcher Override greift. Der Visualizer löst das mit einer kompakten Edge-Liste:

  • Jeder Anchor erscheint einmal mit &name und Definitionszeile.
  • Darunter steht die Liste aller Verwendungen mit Zeilennummer und Typ-Badge (merge für <<, alias für plain *name).
  • Bei einem Eintrag wie defaults: &d und <<: *d in zwei Konfigurationen siehst du auf einen Blick, dass d zweimal als Merge-Source dient.

Der Visualizer scannt die Source textuell — schnell, keine Parser-Vollanalyse nötig. Limit: Anchors in Flow-Style-Sequenzen ([a: &x 1]) werden über mehrere Zeilen nicht erfasst, aber das ist in DevOps-Konfigurationen extrem selten.

Wie funktioniert die Comment-Preservation?

JSON hat per Spec keine Kommentare. Wer YAML → JSON → YAML rückwärts fährt, verliert auf der ersten Strecke alle Kommentare — und sie kommen nicht wieder, weil das JSON nichts davon weiß.

Der Comment-Preservation-Toggle (nur auf dem Rückweg JSON → YAML sichtbar) löst das mit einer zweiten Eingabe: das Original-YAML. Aktiv eingeschaltet:

  1. Der Konverter parst das Original-YAML zu einem AST mit Kommentar-Properties auf jedem Knoten.
  2. Aus dem JSON wird ein frisches YAML emittiert.
  3. Der Konverter walked beide AST-Bäume parallel und überträgt Kommentare per Pfad-Match auf das frische YAML.

Header-Kommentare bleiben Header, Leading-Kommentare bleiben Leading, Trailing-Kommentare hängen wieder hinter dem richtigen Wert. Bei Mappings wird per Key gematcht, bei Sequenzen per Index.

Limit: Wenn du im JSON Keys umbenennst, Felder verschiebst oder Strukturen änderst, fällt der Kommentar an dieser Stelle ab — Pfad-Match findet nichts. Wer Kommentare unbedingt erhalten will, ändert die Daten so, dass die ursprüngliche Struktur erkennbar bleibt.

Was ist absichtlich nicht gebaut?

  • Kein YAML-Live-Editor. Der Konverter parst beim Tippen, gibt aber keine Syntax-Vervollständigung und keinen Schema-aware-Auto-Complete. Wer das braucht, nutzt VS Code mit der YAML-Extension.
  • Keine Custom-Tag-Erweiterung. !Ref, !GetAtt, !Sub aus CloudFormation oder Ansible-spezifische Tags werden tolerant geparst, aber nicht ausgewertet. Tools wie aws cloudformation validate-template sind die richtige Anlaufstelle.
  • Kein Helm-Template-Rendering. Helm-Charts mit {{ .Values.x }}-Platzhaltern erfordern das Helm-Binary. Wir rendern Chart.yaml direkt; values.yaml wird wie generisches YAML behandelt.
  • Keine vollständige K8s-Schema-Validierung. Die K8s-Hinweise sind heuristisch. Wer vollständige Validierung gegen das aktuelle Schema braucht, nutzt kubeval oder kustomize build | kubectl --dry-run=server apply.
  • Kein Anchor-Auto-Refactoring. DRY-Vorschläge (“hier könntest du einen Anchor extrahieren”) brechen den Refined-Minimalism-Ansatz dieses Tools.

Wo finde ich mehr Details?

Zuletzt aktualisiert:

Das könnte dir auch gefallen