JSON ↔ YAML-Konverter
JSON ↔ YAML-Konverter
JSON und YAML nebeneinander bearbeiten – Änderungen werden sofort auf die andere Seite synchronisiert. Unterstützt Einrückungsanpassung, Schlüsselsortierung und Multi-Dokument-YAML-Aufspaltung. Nützlich für Kubernetes/Helm/CI-Konfigurationen und API-Debugging.
🚀 Schnellstart
- Fügen Sie JSON in den linken Editor ein oder geben Sie es ein, und YAML auf der rechten Seite wird automatisch aktualisiert.
- Sie können auch rechts YAML eingeben und JSON links wird automatisch aktualisiert.
- Die Synchronisierung erfolgt vollständig bidirektional. Es ist kein Moduswechsel erforderlich: Bearbeiten Sie eine Seite und die andere Seite wird sofort aktualisiert.
- Verwenden Sie die obere Symbolleiste, um die JSON/YAML-Einrückung festzulegen, die Schlüsselsortierung zu aktivieren und die YAML-Ausgabe mehrerer Dokumente umzuschalten.
- Drücken Sie im Editor die Tabulatortaste, um einen Einzug einzufügen, anstatt den Fokus zu verschieben.
- Jeder Editor verfügt über die Schaltflächen „Kopieren“ und „Löschen“ in der oberen rechten Ecke. Durch das Löschen einer Seite werden beide Seiten gelöscht.
📌 Häufige Anwendungsfälle
- Kubernetes-Authoring: Konvertieren Sie K8s-Ressourcenmanifeste zwischen YAML und JSON, um die Struktur aus beiden Ansichten zu überprüfen.
- Debuggen von Helmwerten: Konvertieren Sie „values.yaml“ in JSON, um Typen und Verschachtelungen in Ihrer IDE zu überprüfen.
- CI/CD-Pipelines: Konvertieren Sie schnell Snippets zwischen GitHub Actions (YAML) und CI-Systemen, die JSON verwenden.
- API-Debugging: Konvertieren Sie JSON-Nutzlasten in YAML für eine klarere hierarchische Ansicht.
- Konfigurationsmigration: Batch-Konvertierung von Konfigurationsdateien zwischen YAML und JSON.
- Formatierung und Validierung: Überprüfen Sie die JSON/YAML-Syntax über eine bidirektionale Synchronisierung mit der Position von Zeilen-/Spaltenfehlern.
🧭 Nutzungstipps
- In den meisten Fällen funktioniert ein JSON-Einzug mit zwei Leerzeichen. Verwenden Sie 4 Leerzeichen für Deep Nesting- oder Helm-Wertedateien.
- Aktivieren Sie die Schlüsselsortierung, um Objektschlüssel in alphabetischer Reihenfolge auszugeben. Dies erleichtert den Vergleich von Konfigurationsunterschieden.
- Wenn das JSON-Stammverzeichnis ein Array ist, aktivieren Sie Multi-Document YAML, um jedes Element in ein separates Dokument (---) aufzuteilen, was für K8s-Dateien mit mehreren Ressourcen nützlich ist.
- Wenn die Eingabe ungültig ist, zeigt der Editor einen Fehler mit Zeilen-/Spaltendetails an; die Gegenseite behält ihren zuletzt gültigen Inhalt.
- Bei großen Inhalten fügen Sie zuerst ein und warten Sie auf die Synchronisierung. Fahren Sie dann mit der Bearbeitung fort, um eine übermäßige Neukonvertierung zu vermeiden.
⚠️ Einschränkungen und Kompatibilität
- Das YAML-Parsing folgt der YAML 1.2-Spezifikation. Einige YAML 1.1-spezifische Verhaltensweisen (z. B. automatische boolesche Ja/Nein-Konvertierung) können abweichen.
- JSON-Nummern folgen den JavaScript IEEE 754-Grenzwerten. Bei Ganzzahlen über der sicheren 53-Bit-Genauigkeit kann es zu Genauigkeitsverlusten kommen.
- YAML-Anker und Aliase (&, *, <<) werden bei der Konvertierung in JSON auf konkrete Werte erweitert; Referenzen können nicht beibehalten werden.
- YAML-Kommentare werden während der Konvertierung gelöscht, da JSON keine Kommentare unterstützt.
🔒 Datenschutz & Sicherheit
- Die gesamte Verarbeitung erfolgt lokal in Ihrem Browser. Ihre Daten verlassen niemals Ihr Gerät.
❓ Häufige Fragen
Was ist der Unterschied zwischen JSON und YAML und wann sollte ich beide verwenden?
JSON und YAML können dieselben Datentypen (Objekte, Arrays, Strings, Zahlen) darstellen, ihre Syntax unterscheidet sich jedoch: • JSON verwendet geschweifte Klammern und doppelte Anführungszeichen, hat eine strengere Syntax und unterstützt keine Kommentare. • YAML verwendet Einrückungen für die Hierarchie, ist besser lesbar und unterstützt Kommentare, reagiert jedoch empfindlich auf Leerzeichen. Faustregel: • Für APIs und den Datenaustausch zwischen Maschinen bevorzugen Sie JSON. • Für Kubernetes/Helm/CI-Konfigurationen, die häufig von Menschen bearbeitet werden, bevorzugen Sie YAML. • Sie können zwischen ihnen konvertieren, ohne das Datenmodell zu ändern.
Warum werden Ja/Nein/Ein/Aus in YAML nach der Konvertierung wahr/falsch?
Dies ist auf das Verhalten von Legacy-YAML 1.1 zurückzuführen, bei dem Ja/Nein/Ein/Aus/J/N als boolesche Werte geparst werden können. Dieses Tool folgt YAML 1.2, wobei nur true/false boolesche Werte sind. Wenn Sie Zeichenfolgenwerte benötigen, geben Sie diese in Anführungszeichen an (z. B. „yes“).
Warum verschwinden YAML-Kommentare nach der Konvertierung in JSON?
JSON (RFC 8259) erlaubt keine Kommentare. Daher können YAML-Kommentare bei der YAML→JSON-Konvertierung nicht beibehalten werden und können bei der Rückkonvertierung nicht rekonstruiert werden. Behalten Sie die ursprüngliche YAML-Datei, wenn Kommentare wichtig sind.
Was bedeutet --- in YAML?
--- ist der Dokumententrenner von YAML, der zum Speichern mehrerer unabhängiger Dokumente in einer Datei verwendet wird. Dies ist in Kubernetes üblich, wo eine Datei Bereitstellungs-, Dienst- und ConfigMap-Definitionen enthalten kann. Dieses Tool liest YAML mit mehreren Dokumenten als JSON-Array und kann ein JSON-Array auch wieder in --- getrennte YAML-Dokumente aufteilen.
Was soll ich tun, wenn die numerische Genauigkeit nach der Konvertierung verloren geht?
JavaScript verwendet IEEE 754-Zahlen mit doppelter Genauigkeit. Sichere ganze Zahlen reichen von -(2^53-1) bis 2^53-1 (±9007199254740991). Größere Ganzzahlen (z. B. Snowflake-IDs oder 64-Bit-Zeitstempel) können an Präzision verlieren. Um genaue Werte beizubehalten, speichern Sie sie als Zeichenfolgen, z. B. „9007199254740992“.
Was passiert mit YAML-Ankern (& und *) während der Konvertierung?
Anker (&name) und Aliase (*name) sind YAML-spezifische Wiederverwendungsfunktionen. JSON verfügt über keinen entsprechenden Referenzmechanismus, daher werden Aliase während der Konvertierung in vollständige Kopien erweitert. Dies ist eine verlustbehaftete Transformation und die ursprüngliche Ankerstruktur kann nicht automatisch wiederhergestellt werden.