Haben Sie an Beispielen von JSON- und XML-Dokumenten geschaut?
Während sowohl JSON als auch XML verwendet werden, um beliebige Bäume von Daten darzustellen, ist XML viel ausführlicher. Jedes Element in der Struktur hat einen Namen (den Namen des Elementtyps), und das Element muss in einem passenden Paar von Tags eingeschlossen sein. Im Gegensatz dazu drückt JSON Bäume in einer "verschachtelten Array" Art von Notation aus, die mit der von Javascript vergleichbar ist (in der Tat kann ein JSON-Dokument buchstäblich als Javascript geparst werden, um zu dem entsprechenden Array zu führen).
Werfen Sie einen Blick at the differences.
XML ist natürlich semantisch reicher wird, da Elemente mit einer beliebigen Anzahl von Attributen dekoriert werden, und Elemente gemischten Inhalt freien Textflusses und weiteren, verschachtelte Elemente enthalten können. Zum Beispiel würde der folgende Code-Schnipsel mühsam sein als JSON auszudrücken:
kann
<paragraph>
This is an entire paragraph of <emph>text</emph>. It is interspersed with
further, nested <emph>XML elements</emph>, as well as the occasional
<link href="http://stackoverflow.com/a/12346394/596781">hyperlink</link>.
</paragraph>
Auf der anderen Seite, Daten -ähnlichen Dokumente viel einfacher in JSON. Stellen Sie sich folgendes vor:
<properties>
<property type="int" name="ID">123</property>
<property type="date" name="birthday">19700101</property>
<references>
<url>http://stackoverflow.com/a/12346394/596781</url>
<doi>something.made.up</doi>
</references>
</properties>
Dies wird zu einem sehr kompakten JSON-Array.
Eine zweite Überlegung ist die Anzahl der Toolsets, die beide Formate umgeben. Während es bei JSON-Tools hauptsächlich um das Parsen von JSON-Daten geht, hat das W3C eine große Anzahl von adhärenten Technologien entwickelt, um XML auf systematische Weise zu manipulieren, wie XSLT und XPATH.
Kurz gesagt, und als eine sehr persönliche Meinung, würde ich sagen, dass XML über das Dokument und JSON über Daten ist. XML wird für große, strukturierte Dokumente natürlicher und nützlicher, während JSON oft das einfachere und weniger verbindliche Format für die Übertragung von Datensätzen ist.
Eine vollständige Antwort berücksichtigt alle drei der besten Antworten, die Sie erhalten haben. Wenn Sie versuchen, zwischen XML und JSON zu wählen, wäre es sinnvoll sich zu fragen, welchen Zweck es erfüllen soll. Wenn Sie eine kompakte Serialisierung für die Übertragung oder Massenspeicherung wünschen, ist JSON die richtige Wahl. Wenn Sie Dokumente manipulieren möchten, ist XML, wie Kerrek bemerkt, viel besser durch adhärente Technologien unterstützt. Wenn Sie das .NET-Framework verwenden, ist dies weniger wichtig, da LINQ praktisch alles abfragen/transformieren kann. –
@PeterWone: Es gibt nichts wie "Top drei Antworten" auf StackOverflow, weil die Reihenfolge variiert je nach abgegebenen Stimmen. Um auf bestimmte Antworten zu verweisen, benennen Sie bitte den Autor oder geben Sie den Permalink an. Zum Zeitpunkt des Schreibens haben wir eine Antwort mit 21 Stimmen und drei Antworten mit je 5 Stimmen. Also welche sind die "Top Drei"? :) – KPM
@KPM - ja, und das ist genau das, was ich meinte: die drei Top-Scoring-Antworten zum Zeitpunkt des Kommentars. Ich habe einen der Autoren genannt, und mein Kommentar war in der Lage, allein zu stehen; Ich erwähne diese Antworten nur als Höflichkeit gegenüber den Autoren. Wie auch immer, hier sind wir Jahre später und sie sind immer noch die Top-3-Antworten sowie die drei Top-Antworten. –