100 % lokal — Ihre Daten verlassen nie Ihren Browser

YAML in JSON — lange IDs bleiben exakt

YAML in JSON umwandeln. Große Ganzzahlen behalten jede Ziffer und mehrere Dokumente werden zu einem Array — bereit für eine API oder ein Skript.

Sofort Privat Null Cookies
Einrückung

YAML-Eingabe

JSON-Ausgabe

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.

Häufige Fragen

Warum kam meine 20-stellige ID früher falsch zurück?
Weil sie durch eine Gleitkommazahl doppelter Genauigkeit lief, die etwa fünfzehn Ziffern hält. `12345678901234567890` kam als `12345678901234567000` heraus — eine andere Zahl, ohne jede Warnung. Dem YAML-Leser lässt sich sagen, große Ganzzahlen exakt zu behalten, und das tut er jetzt.
Was wird aus meinen Ankern und Aliassen?
Sie werden aufgelöst: jeder `*alias` wird zu einer Kopie dessen, was sein `&anker` hielt, und `<<:`-Merge-Schlüssel werden angewandt. JSON kann Teilen nicht ausdrücken, also ist das keine Wahl, sondern die einzige treue Übersetzung. Das Ergebnis ist größer als das YAML — der ehrliche Preis.
Meine Datei hat mehrere Dokumente. Was bekomme ich?
Ein JSON-Array, ein Eintrag je Dokument. `---` trennt YAML-Dokumente, und JSON hat kein Gegenstück; das Array ist die einzige Form, die alle behält. Eine Datei mit einem Dokument gibt Ihnen das Objekt selbst, kein Array mit einem Element.

Ähnliche Konverter