JSON vs YAML
JSON und YAML sind beide weit verbreitet und werden aus verschiedenen Gründen gewählt. Diese Seite stellt sie bei den Dingen gegeneinander, die zwischen ihnen entscheiden, und verweist auf die Konverter für beide Richtungen — die alle in Ihrem Browser laufen, ohne dass die Datei je hochgeladen wird.
Die kurze Antwort
Sie drücken dieselben Strukturen aus — dieselbe Verschachtelung, dieselben Werte — und unterscheiden sich darin, wie sie geschrieben werden und wer sie lesen muss. YAML lässt Klammern und Anführungszeichen weg und überlässt der Einrückung die Arbeit, was eine Konfigurationsdatei weit angenehmer von Hand zu bearbeiten macht. Es erlaubt außerdem Kommentare, die JSON nicht hat, und für eine Konfigurationsdatei ist das oft das entscheidende Argument.
JSONs Vorteil ist, dass es langweilig ist. Es gibt eine Art, es zu schreiben, jede Sprache liest es identisch, und keine Änderung an Leerraum kann seine Bedeutung verschieben. YAML hat genug Feinheiten in seinen Regeln — Einrückung, implizite Typisierung, Werte wie `no` und `on` —, dass eine Datei etwas anderes bedeuten kann, als sie zu sagen scheint.
Eine verbreitete Anordnung ist, YAML zu schreiben und daraus JSON zu erzeugen: Kommentare und Lesbarkeit dort, wo Menschen arbeiten, und die eindeutige Fassung für Programme. Das geht gut, solange das YAML die Quelle der Wahrheit bleibt — die Umwandlung in die andere Richtung erzeugt eine Datei mit unversehrter Struktur und ohne einen einzigen Kommentar.
Nebeneinander
| Eigenschaft | JSON | YAML |
|---|---|---|
| Gespeichert als | Reiner Text, in jedem Editor lesbar | Reiner Text, in jedem Editor lesbar |
| Was es fassen kann | Werte in Werten verschachtelt | Werte in Werten verschachtelt |
| Zahlen bleiben Zahlen | Ja | Ja |
| Kommentare | Nein | Ja |
| Mehrere in einer Datei | Nein | Ja |
| Veröffentlicht | 2001 | 2001 |
Wo sie sich tatsächlich unterscheiden
- Nur YAML hat eine Syntax für Kommentare. Davon weg umzuwandeln verliert jede Erklärung in der Datei und behält alle Daten.
- Nur YAML kann mehrere Dokumente in einer Datei halten, was zählt, wenn eine Umwandlung mehr als eine Sache zu schreiben hat.
- Sie sind nahezu Zeitgenossen, weshalb sie sich so stark überschneiden.
Was schiefgeht
- Kommentare überstehen ein Format nicht, das keine Syntax für sie hat. Die Daten kommen unversehrt an und jede Erklärung ist fort, was diese Richtung praktisch einseitig macht.
Welches wählen
- Nehmen Sie JSON, wenn
- Nehmen Sie JSON für alles, was ein Programm schreibt oder liest, für Schnittstellen und überall dort, wo eindeutiges Parsen mehr zählt als Lesbarkeit.
- Nehmen Sie YAML, wenn
- Nehmen Sie YAML für Konfiguration, die ein Mensch bearbeitet, wo Kommentare und wenig Interpunktion mehr wert sind als Strenge.
Zwischen beiden umwandeln
Häufige Fragen
- Gehen Kommentare beim Umwandeln von YAML nach JSON verloren?
- Ja, und daran führt kein Weg vorbei: JSON hat keine Syntax für einen Kommentar, es gibt also keinen Ort für sie. Das macht die Umwandlung praktisch einseitig — die Daten überstehen sie, die Erklärung dazu nicht. Behalten Sie das YAML, wenn die Kommentare zählen.
- Was ist besser, JSON oder YAML?
- Keines von beiden im Allgemeinen — wäre eines schlicht besser, gäbe es das andere nicht mehr. Sie sind in verschiedenen Dingen gut, und die kurze Antwort oben sagt, welches worin. Die nützliche Frage ist, was die Datei als Nächstes tun muss: bearbeitet, veröffentlicht, von jemandem geöffnet werden oder in eine Größengrenze passen.
- Geht beim Umwandeln zwischen ihnen etwas verloren?
- Das hängt von der Richtung ab. In ein Format umzuwandeln, das alles speichert, verliert nichts, holt aber auch nichts zurück; in eines umzuwandeln, das Details verwirft, verliert jedes Mal ein wenig. Die Tabelle oben sagt, welches dieser beiden was tut.
- Kann ich hinterher zurückwandeln?
- Die Datei lässt sich zurückwandeln, aber ob sie unverändert zurückkommt, hängt von der Richtung ab. Zwischen zwei Formaten, die alles speichern, ist eine Hin- und Rückwandlung verlustfrei. Verwirft eines von beiden Details, sind diese fort, und der Rückweg kann sie nicht erfinden.
- Kann ich beide verwenden?
- Auf einer Webseite oft ja, und meist ist es die richtige Antwort: Liefern Sie das kleinere moderne Format aus und nennen Sie ein älteres als Rückfall, damit jeder Browser nimmt, was er versteht. Für eine Datei, die Sie einem Menschen geben, wählen Sie eines — das, welches die Person öffnen kann.
- Welches unterstützt meine Software?
- Die Tabelle oben sagt, welche Browser welches lesen, und das ist der Teil, der am stärksten variiert. Die Unterstützung auf dem Rechner ist allgemein schwerer zu benennen und liegt meist Jahre hinter den Browsern, geht die Datei also an jemand anderen, ist das ältere und weiter verbreitete der beiden die sicherere Wahl.
- Ist das Umwandeln zwischen ihnen kostenlos?
- Ja, ohne Konto und ohne Grenze, wie viele Dateien Sie umwandeln. Jeder von dieser Seite verlinkte Konverter läuft in Ihrem Browser: Die Datei wird von Ihrem Gerät gelesen, von Code darauf umgewandelt und als Download zurückgegeben.
- Wird meine Datei hochgeladen?
- Nein. Es gibt hier keinen Konvertierungsserver, zu dem sie hochgeladen werden könnte, und kein Drittanbieterdienst ist beteiligt. Sie können es selbst nachsehen: Öffnen Sie die Entwicklerwerkzeuge Ihres Browsers, wechseln Sie ohne Filter in den Netzwerk-Bereich und führen Sie eine Umwandlung aus — keine Anfrage trägt Ihre Datei.