JSON vs XML
JSON und XML 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
Beide halten verschachtelte Daten und beide sind Text, jedes kann also fast alles ausdrücken, was das andere kann. JSON tut es mit weit weniger Zeremonie: keine schließenden Tags, keine Entscheidung zwischen Attributen und Elementen, und eine Form, die direkt auf die Datenstrukturen jeder modernen Sprache abbildet. Deshalb hat es XML bei Schnittstellen fast vollständig verdrängt.
XML behält die Vorzüge seines Alters und seines Anspruchs. Es hat echte Schemasprachen, Namensräume zum Mischen von Vokabularen und mit XPath eine Abfragesprache, und es behandelt Dokumente — Prosa mit Auszeichnung darin — auf eine Weise, die JSON überhaupt nicht ausdrücken kann. Verlagswesen, öffentliche Daten und Büroformate laufen aus diesen Gründen weiterhin darauf.
Wenn Sie XML nach JSON umwandeln, sind die Attribute das, was zu prüfen ist. Jeder Konverter muss sich dafür eine Konvention ausdenken, und die beiden verbreitetsten — dem Schlüssel ein Präfix voranstellen oder sie unter einem eigenen Objekt verschachteln — erzeugen aus demselben XML unterschiedliches JSON. Welche Ihr Werkzeug auch nimmt, das Ergebnis wandelt sich nicht mehr in die Ausgangsdatei zurück.
Nebeneinander
| Eigenschaft | JSON | XML |
|---|---|---|
| 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 | Nein |
| Kommentare | Nein | Ja |
| Mehrere in einer Datei | Nein | Nein |
| Veröffentlicht | 2001 | 1998 |
Wo sie sich tatsächlich unterscheiden
- Nur JSON weiß, welche Art Wert es hält. Im anderen ist alles Text, weshalb führende Nullen verschwinden und lange Zahlen zur wissenschaftlichen Notation werden.
- Nur XML hat eine Syntax für Kommentare. Davon weg umzuwandeln verliert jede Erklärung in der Datei und behält alle Daten.
- Sie sind nahezu Zeitgenossen, weshalb sie sich so stark überschneiden.
Was schiefgeht
- In das typlose Format umzuwandeln macht aus jedem Wert Text. Führende Nullen verschwinden, lange Zahlen werden zur wissenschaftlichen Notation, und Datumsangaben kommen in der Form zurück, die das lesende Programm errät.
- 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 Schnittstellen, Konfiguration und Daten zwischen Programmen, wo weniger Zeremonie und direkte Abbildung auf native Typen gewinnen.
- Nehmen Sie XML, wenn
- Nehmen Sie XML für Dokumente, für alles, was Schemaprüfung oder Namensräume braucht, und wo ein bestehendes System es ohnehin spricht.
Zwischen beiden umwandeln
Häufige Fragen
- Lässt sich XML sauber nach JSON umwandeln?
- Nicht immer. XML unterscheidet Attribute von Kindelementen und erlaubt, Text und Elemente im selben Knoten zu mischen, und JSON hat für beides keine Entsprechung. Konverter führen Konventionen ein — etwa ein Präfix am Attributnamen —, und das Ergebnis ist gültiges JSON, das sich nicht mehr in das ursprüngliche XML zurückwandeln lässt.
- Was ist besser, JSON oder XML?
- 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.