Zum Inhalt springen
BCBinary Code Translator
Menü

Daten-Tool

JSON ↔ YAML-Konverter

Wandle JSON und eine eingeschränkte, JSON-kompatible YAML-Teilmenge lokal ineinander um. Sichere Schemas, blockierte prototypbezogene Schlüssel, nicht unterstützte Werte und zyklische Aliase reduzieren unerwartetes Verhalten.

Das Dokument bleibt im Browser. Es werden keine benutzerdefinierten Tags, Funktionen oder ausführbaren Typen geladen.

So konvertierst du JSON und YAML

Wähle die Richtung und füge ein vollständiges Dokument ein. YAML wird mit JSON_SCHEMA geparst, damit nur JSON-kompatible skalare Typen automatisch entstehen. Prüfe die Ausgabe, weil Kommentare und Präsentationsstil nicht Teil des JSON-Datenmodells sind.

  1. Wähle JSON nach YAML oder YAML nach JSON.
  2. Füge genau ein Dokument mit Objekten, Arrays, Zeichenfolgen, Zahlen, booleschen Werten und null ein.
  3. Konvertiere und prüfe Typen, Anführungszeichen sowie verschachtelte Strukturen.
  4. Validiere die Ausgabe zusätzlich mit dem Schema und Parser der Zielanwendung.

Beispiele und erwartetes Verhalten

Eingabe Ausgabe Hinweise
{"name":"泉","enabled":true} name: 泉 enabled: true JSON-Skalare und Unicode werden direkt dargestellt.
items: - one - two {"items":["one","two"]} Eine YAML-Sequenz wird zum JSON-Array.
date: 2026-07-29 {"date":"2026-07-29"} JSON_SCHEMA hält datumsähnliche Werte als Zeichenfolge.
value: !!js/function > function() {} Fehler JavaScript-spezifische Tags sind nicht erlaubt.
__proto__: polluted: true Blockierter Schlüssel Prototypbezogene Namen werden abgewiesen.
a: &node self: *node Zyklischer Aliasfehler Zyklische Objektgraphen lassen sich nicht als JSON serialisieren.

Unterstütztes Datenmodell

Die Konvertierung ist absichtlich auf die Schnittmenge von JSON und sicherem YAML beschränkt: Objekte, Arrays, Zeichenfolgen, endliche Zahlen, boolesche Werte und null. YAML kann deutlich mehr ausdrücken, darunter Tags, mehrere Dokumente, komplexe Schlüssel und zyklische Referenzen; diese Funktionen werden nicht als allgemeine Konfiguration ausgeführt.

JSON nach YAML parst zuerst Standard-JSON. YAML nach JSON nutzt das JSON-Schema von js-yaml und prüft anschließend rekursiv jeden Wert. Damit werden aus Produktkonfigurationen nicht automatisch Datumswerte, Binärobjekte, reguläre Ausdrücke oder JavaScript-spezifische Werte konstruiert.

  • Genau ein Dokument pro Konvertierung.
  • Keine benutzerdefinierten oder JavaScript-Tags.
  • Nur JSON-kompatible Schlüssel und Werte.

Sicheres Schema und Typen

JSON_SCHEMA erkennt null, boolesche Werte und JSON-kompatible Zahlen, interpretiert aber beispielsweise 2026-07-29 nicht als Date-Objekt. Das reduziert überraschende implizite Typen und macht das Ergebnis für JSON vorhersehbarer.

YAML-Skalare mit oder ohne Anführungszeichen können je nach Grammatik verschiedene Typen ergeben. Setze Anführungszeichen, wenn ein Wert eindeutig Text bleiben soll. Die Zielanwendung muss dennoch ihr eigenes Schema prüfen.

  • Datumsähnliche Werte bleiben Text.
  • NaN und Infinity sind keine JSON-Zahlen.
  • Zahlen mit führenden Nullen sollten bei Bedarf quotiert werden.

Schutz vor Prototype Pollution

Die Namen __proto__, prototype und constructor werden in beliebiger Tiefe blockiert. Solche Schlüssel können in unsicherem Merge-Code die Prototypkette beeinflussen. Zulässige Objekte werden in Objekte ohne benutzerdefinierten Prototyp kopiert, bevor sie serialisiert werden.

Das ist eine zusätzliche Grenze, keine Garantie für nachgelagerte Software. Importierende Anwendungen sollten weiterhin erlaubte Schlüssel definieren, Objekte sicher zusammenführen und nicht vertrauenswürdige Daten nicht in Konfigurationsobjekte mischen.

  • Blockierung gilt auch in Arrays verschachtelter Objekte.
  • Keine tiefen Merges mit nicht vertrauenswürdigen Eingaben.
  • Empfänger brauchen eigene Schema- und Größenlimits.

Anker, Aliase und Präsentationsverlust

YAML-Anker und Aliase können gemeinsame Referenzen ausdrücken. Bei einem azyklischen Graphen wird der Wert für JSON dupliziert; ein Zyklus wird abgelehnt, weil JSON.stringify ihn nicht darstellen kann. Die YAML-Ausgabe deaktiviert automatisch erzeugte Referenzen.

Kommentare, Block- oder Flow-Schreibweise, Anführungszeichenwahl und genaue Abstände existieren im JSON-Datenmodell nicht und gehen bei der Rückkonvertierung verloren. Nutze dieses Werkzeug daher für Datenmigration, nicht als verlustfreien YAML-Quelltextformatter.

  • Kommentare werden nicht erhalten.
  • Aliasidentität wird nicht erhalten.
  • Schlüsselreihenfolge ist keine kanonische Garantie.
  • Azyklische Aliase werden als wiederholte JSON-Daten ausgegeben.

Typische Anwendungen

Geeignet sind kleine API-Beispiele, Kubernetes-unabhängige Konfigurationsausschnitte, Test-Fixtures und Daten, die ausdrücklich JSON-kompatibel bleiben sollen. Die Ausgabe erleichtert das Wechseln zwischen maschinenfreundlicher JSON- und menschenlesbarer YAML-Darstellung.

Produktspezifische YAML-Dateien können Tags, Merge-Keys, mehrere Dokumente oder spezielle Skalarregeln erwarten. Prüfe die konvertierte Datei immer mit der tatsächlichen Anwendung, bevor du sie einsetzt.

  • Fixtures zwischen Formaten austauschen.
  • Ein YAML-Beispiel als JSON inspizieren.
  • JSON-kompatible Konfiguration lesbarer darstellen.

Fehler und Grenzen

Leere Eingabe, Syntaxfehler, unbekannte Tags, gefährliche Schlüssel, nicht endliche Zahlen, nicht unterstützte Werte und zyklische Aliase werden klar abgewiesen. Sehr große oder tiefe Dokumente können den Browser belasten.

Das Werkzeug löst keine Umgebungsvariablen auf, führt keine Templates aus, verarbeitet keine Includes und validiert keine Kubernetes- oder Anwendungsressourcen. Es ist auch kein mehrdokumentiger YAML-Editor.

  • Keine Code- oder Template-Ausführung.
  • Keine externen Referenzen oder Includes.
  • Keine semantische Produktschema-Prüfung.

Sicherheit und Werkzeugwahl

YAML ist eine Datensprache, wurde aber historisch mit Parsern verwendet, die gefährliche Objekte konstruieren konnten. Deshalb sind ein eingeschränktes Schema und aktuelle Bibliothek wichtig. Die vorhandene js-yaml-Abhängigkeit wird wiederverwendet; zusätzliche Parser sind nicht nötig.

Nutze den JSON-Formatter für reine Syntax und den JSON–CSV-Konverter für flache Datensätze. Base64 ist nur Kodierung und keine strukturierte Konvertierung.

Häufige Fragen

Ist die YAML-Konvertierung vor Codeausführung geschützt?

Die Seite verwendet js-yaml mit JSON_SCHEMA und aktiviert keine JavaScript-spezifischen Tags. Anschließend werden gefährliche Schlüssel, nicht unterstützte Werte und Zyklen abgewiesen. Prüfe kopierte Daten dennoch mit dem Schema der Zielanwendung.

Werden Datumswerte zu Date-Objekten?

Nein. Ein Wert wie 2026-07-29 bleibt Text, sofern die YAML-Grammatik ihn mit dem verwendeten Schema so liefert.

Bleiben Kommentare erhalten?

Nein. Kommentare und Stilinformationen existieren nicht im JSON-Datenmodell und gehen nach dem Parsen verloren.

Was geschieht mit Ankern und Aliasen?

Azyklische Referenzen werden als wiederholte Daten dargestellt. Zyklische Aliase werden abgelehnt, weil JSON keine Zyklen kennt.

Warum werden __proto__ und constructor blockiert?

Sie sind häufig an Prototype Pollution beteiligt, wenn nicht vertrauenswürdige Objekte unsicher zusammengeführt werden.

Kann die Ausgabe direkt in Produktion?

Behandle sie als Entwurf und validiere sie mit dem genauen Parser, Schema und Produkt, das sie konsumiert.

Verwandte Entwickler-Tools

Alle Tools anzeigen

Cookie-Einstellungen

Verwalte deine Cookie-Einstellungen. Notwendige Cookies können nicht deaktiviert werden.

Notwendig

Erforderlich

Erforderlich für Sprachauswahl, Datenschutzeinstellungen und grundlegende Website-Funktionen.

Cookies: NEXT_LOCALE

Analyse

Optionale Analyse-Cookies helfen uns, den Traffic zu verstehen und die Website zu verbessern.

Cookies: _ga, _gid, _gat, _clck, _clsk

Werbung

Optionale Werbe-Cookies können genutzt werden, um relevante Anzeigen zu zeigen und deren Leistung zu messen.

Cookies: __gads, _gcl_au, IDE