Was dieses Werkzeug tut
YAML ist eine Obermenge von JSON, der größte Teil der Umwandlung verläuft also ereignislos: Zuordnungen werden Objekte, Sequenzen Arrays, Skalare Zeichenketten, Zahlen, Wahrheitswerte oder null.
Was folgt, ist die Stelle, an der es aufhört, ereignislos zu sein.
Lange Bezeichner behalten ihre Ziffern
id: 12345678901234567890
{ "id": 12345678901234567890 }
Das sieht unauffällig aus, und genau darum geht es. Eine JSON-Zahl ist eine Gleitkommazahl doppelter Genauigkeit und hält etwa fünfzehn Ziffern; ein zwanzigstelliger Bezeichner — ein Twitter-Snowflake, ein PostgreSQL-bigint — kam früher als andere Zahl zurück, stillschweigend. Die Ziffern werden jetzt exakt gelesen und unverändert geschrieben.
Anker werden aufgelöst, weil JSON sie nicht halten kann
defaults: &d
retries: 3
web:
<<: *d
wird zu zwei Kopien von retries: 3. JSON kennt keinen Wert, der an zwei Stellen steht, das Teilen übersteht den Übergang also nicht. Die Ausgabe ist größer als die Eingabe, verloren geht nichts — außer der Beziehung, und das sollte man wissen, bevor man eine auf Ankern gebaute Datei hin und zurück wandelt.
Mehrere Dokumente werden ein Array
--- trennt Dokumente. JSON hat keinen Trenner, ein Strom aus drei Dokumenten wird also ein Array aus drei Werten. Ein einzelnes Dokument wird nicht verpackt: Sie erhalten das Objekt.
Die Nullwerte, alle drei
~, null und ein leerer Wert bedeuten in YAML alle null, und alle drei werden null. Das ist eine der wenigen Stellen, an denen JSON einfacher ist als YAML statt umgekehrt.
Was diese Umwandlung nicht für Sie entscheiden kann
yes wird als Zeichenkette "yes" gelesen, denn so sagt es YAML 1.2. Eine für PyYAML geschriebene Datei, das YAML 1.1 umsetzt, meinte den Wahrheitswert wahr.
Nichts in der Datei sagt, welche Version ihr Autor im Sinn hatte. Kommt Ihr YAML aus einem Python-Werkzeug und zählt ein blankes yes, no oder on, setzen Sie es an der Quelle in Anführungszeichen — und wissen Sie, dass die Mehrdeutigkeit in der Datei liegt, nicht im Konverter.
Datenschutz ab Werk
Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.