JSON in YAML konvertieren Online
Konvertiere JSON in lesbares YAML. Ideal zum Erstellen von Docker-Compose-, Kubernetes- oder GitHub-Actions-Konfigurationen.
name: John Doe age: 30 active: true tags: - developer - javascript address: city: Madrid zip: 28001
Anwendungsfälle
Von API-JSON zu lesbarer YAML-Konfiguration
DevOps-Konfigurationen erstellen
Wandle JSON-Antworten von Kubernetes-, Docker- oder Cloud-Tool-APIs in bearbeitbare YAML-Konfigurationsdateien um.
DevOps-Workflow
Konvertiere CloudFormation- oder Azure-ARM-JSON-Templates zu äquivalentem YAML für bessere Lesbarkeit und Wartbarkeit.
100 % privat
Dein JSON wird in deinem Browser verarbeitet. Wird nie auf Server hochgeladen. Keine Anmeldung, keine Nutzungslimits.
Sauberes YAML
2-Leerzeichen-Einrückung, korrekt typisierte Werte, bereit zum Einfügen in docker-compose.yml oder ein Kubernetes-Manifest.
So funktioniert es
Drei Schritte, kein Aufwand
JSON einfügen
Füge beliebiges gültiges JSON ein: API-Antwort, Konfiguration, strukturierte Daten. Sowohl formatiertes als auch minifiziertes JSON wird akzeptiert.
Konvertierung zu sauberem YAML
JSON wird zu YAML mit 2-Leerzeichen-Einrückung konvertiert, gemäß den Konventionen der beliebtesten DevOps-Projekte.
YAML kopieren und verwenden
Kopiere das resultierende YAML als Ausgangsbasis für deine docker-compose.yml, dein Kubernetes-Manifest oder jede andere YAML-Konfiguration.
FAQ
Noch Fragen?
YAML übertrifft JSON in der Lesbarkeit bei langen, hierarchischen Konfigurationen. Die Hauptvorteile von YAML sind: Kommentar-Unterstützung (unverzichtbar in dokumentierten Konfigurationsdateien), kompaktere Syntax (in den meisten Fällen keine geschweiften Klammern oder Anführungszeichen), bessere mehrzeilige String-Darstellung (Skripte, Befehle, Text) und natürlicheres Lesen von Listen. JSON ist überlegen, wenn das Ziel eine API oder ein Programm ist, das es automatisch verarbeitet: Das Parsen ist schneller, die Spezifikation ist einfacher und strenger, und es gibt weniger Mehrdeutigkeit. Die praktische DevOps-Regel: YAML für Dateien, die Menschen direkt bearbeiten, JSON für Daten, die zwischen Systemen ausgetauscht werden.
Der Konverter erzeugt YAML, das dem Eingabe-JSON strukturell entspricht, ohne Kommentare (JSON hat keine Kommentare, daher gibt es keine Informationen zu übertragen). Das erzeugte YAML ist jedoch ein ausgezeichneter Ausgangspunkt: Öffne es in einem beliebigen Editor und füge Kommentare manuell mit # vor oder nach jeder Zeile hinzu. In Tools wie docker-compose.yml und Kubernetes-Manifesten sind Kommentare grundlegend für die Dokumentation des Zwecks jedes Konfigurationswerts.
JSON ist erheblich schneller zu parsen als YAML. Das Parsen von JSON ist O(n) mit sehr niedrigen Konstanten: Parser wie simdjson (in Node.js seit Version 17 verwendet) verarbeiten auf moderner Hardware bis zu 3 GB/s. YAML benötigt einen komplexeren Parser (verarbeitet Anker, Aliasse, explizite Typen, verschiedene String-Stile) und ist typischerweise 10- bis 50-mal langsamer als JSON für dasselbe Datenvolumen. Für kleine Konfigurationsdateien (ein docker-compose.yml mit einigen KB) ist der Unterschied nicht wahrnehmbar. Für APIs, die Millionen von Nachrichten pro Sekunde austauschen, ist JSON die richtige Wahl. Die Verwendung von YAML in DevOps-Tools ist eine ergonomische Entscheidung für die Menschen, die diese Dateien bearbeiten.
Der Konverter verwendet 2-Leerzeichen-Einrückung, die Konvention des gesamten DevOps-Ökosystems: Kubernetes (kubectl erzeugt YAML mit 2 Leerzeichen), Helm, GitHub Actions, GitLab CI, Ansible und Docker Compose. Einige Projekte verwenden 4 Leerzeichen (häufig in Python-Projekten, wo die PEP-8-Konvention Entwickler beeinflusst), aber 2 Leerzeichen ist der De-facto-Standard in der DevOps-Community.
Die Typkonvertierung ist unkompliziert: JSON-Zahlen (Ganzzahlen und Fließkommazahlen) werden als YAML-Skalare ohne Anführungszeichen dargestellt; JSON-Boolesche Werte (true/false) werden zu true/false in YAML; JSON-null wird zu null oder ~ in YAML; Strings werden ohne Anführungszeichen dargestellt, wenn eindeutig, oder in einfachen oder doppelten Anführungszeichen, wenn der Wert als anderer Typ interpretiert werden könnte (z.B. muss der String 42 in Anführungszeichen stehen, um nicht zu einer Zahl zu werden, und true benötigt Anführungszeichen, um nicht zu einem Booleschen Wert zu werden).
JSON zu YAML konvertieren: von API-Antworten zu lesbaren DevOps-Konfigurationen
Die Konvertierung von JSON zu YAML ist ein Routinevorgang in modernen DevOps-Arbeitsabläufen. Die Kubernetes-APIs (die Kubernetes-REST-API gibt Ressourcen standardmäßig in JSON zurück), AWS CloudFormation, Azure Resource Manager, Google Cloud Deployment Manager und die meisten Infrastructure-as-Code-Tools haben native JSON-Schnittstellen, aber ihre Benutzer arbeiten lieber mit YAML-Konfigurationsdateien für bessere Lesbarkeit. kubectl, das Kubernetes-Kommandozeilen-Tool, konvertiert automatisch zwischen YAML und JSON: Wenn du kubectl get deployment meine-app -o yaml ausführst, gibt Kubernetes das JSON-API-Objekt zurück und kubectl konvertiert es zur Anzeige in YAML. Die umgekehrte Konvertierung (JSON zu YAML) ist nützlich, wenn du ein YAML-Manifest aus einer API-Antwort erstellen möchtest, wenn du Konfigurationen zwischen Tools migrierst oder wenn du eine vorhandene Konfiguration durch Hinzufügen von YAML-Kommentaren dokumentierst.
YAML (Spezifikation 1.2, auf yaml.org im Juli 2009 veröffentlicht) ist eine Obermenge von JSON, was garantiert, dass die JSON-zu-YAML-Konvertierung immer verlustfrei möglich ist. Die Umkehrung (YAML zu JSON) verliert nur Kommentare, die JSON nicht darstellen kann. Die Vorteile von YAML für menschliche Konfigurationen sind gut dokumentiert: Das Fehlen von geschweiften Klammern und eckigen Klammern reduziert visuelles Rauschen für typische Konfigurationen um 30 bis 40 Prozent; Kommentare ermöglichen die Dokumentation des Zwecks jedes Parameters direkt in der Datei; mehrzeilige Strings (besonders mit dem wörtlichen Block) ermöglichen das direkte Einbinden von Shell-Skripten, SQL-Abfragen oder Dateiinhalten in die Konfiguration, ohne Sonderzeichen zu escapen.
Im Kubernetes-Ökosystem ist die Wahl zwischen YAML und JSON gut etabliert: Dateien, die Entwickler erstellen und in Git-Repositorys pflegen, sind YAML; Daten, die kubectl an den API-Server sendet, sind JSON (kubectl konvertiert YAML intern zu JSON, bevor der HTTP-Aufruf erfolgt); API-Server-Antworten sind JSON; und Automatisierungstools (Helm, Kustomize, Argo CD, Flux) arbeiten mit YAML als Eingabe und JSON als internem Protokoll. Diese Trennung zwischen menschlichem Format (YAML) und Protokollformat (JSON) ist ein Muster, das auch von GitHub Actions (Workflows sind YAML, die GitHub-API ist JSON), GitLab CI, Ansible (Playbooks in YAML, dynamische Inventardaten in JSON) und Terraform (HCL ist HashiCorps Alternative, akzeptiert aber auch natives JSON in .tf.json-Dateien) verwendet wird.