Ich bin sicher, dass viele Entwickler mit XML und JSON vertraut sind und beide verwendet haben. Daher macht es keinen Sinn zu erklären, was sie sind und was ihr Zweck ist, auch nicht in Kürze.
Wenn wir versuchen, ihre Konzepte abzubilden, können wir sagen (korrigieren Sie mich, wenn ich falsch liege):
- XML-Tags entsprechen JSON
{}
- XML-Attribute entsprechen JSON-Eigenschaften
- Die XML-Tag-Sammlung entspricht JSON
[]
Das einzige, woran ich denken kann, was es in JSON nicht gibt, sind XML-Namespaces .
Die Frage ist, ob wir angesichts dieses Mappings und der Tatsache, dass JSON in diesem Mapping sehr viel leichter ist, in Zukunft eine Welt ohne XML sehen können (oder zumindest theoretisch an eine Welt denken), aber mit JSON alles tun, was XML kann? Können wir JSON überall dort verwenden, wo XML verwendet wird?
PS: Bitte beachte, dass ich diese Frage gesehen habe . Es ist etwas ganz anderes als das, was ich hier frage. Erwähnen Sie daher bitte kein Duplikat .
Antworten:
Das, was XML seine Kraft und Komplexität verleiht, sind gemischte Inhalte. Sachen wie diese:
Versuchen Sie nicht einmal, dies in JSON zu tun oder es in herkömmlichen Programmiersprachen zu manipulieren. Sie waren nicht für den Job konzipiert.
Diese Art von Frage kommt normalerweise von Leuten, die vergessen, dass das M in XML für Markup steht. Es ist eine Möglichkeit, einfachen Text zu verwenden und Markups hinzuzufügen, um strukturierten Text zu erstellen. Es ist auch für altmodische Daten recht praktisch, aber es ist nicht das, wofür es entwickelt wurde oder wo seine Hauptstärken liegen. Es gibt viele Möglichkeiten, mit einfachen Daten umzugehen, und JSON ist eine davon.
quelle
A
dem B-Element, und "Wir sind in Chaos!". Es ist ein Array, das Sie einfach in JSON erklären können.Der Hauptunterschied liegt meiner Meinung nach in der Tatsache, dass XML so konzipiert ist, dass es sich selbst mit seinen dtds und allem erklärt.
Bei JSON müssen Sie eine Menge von den Daten annehmen, die Sie erhalten.
quelle
Eine wörtliche Übersetzung in JSON ist oft weniger prägnant und weniger klar. Erwägen:
Die effektivste JSON-Darstellung, die ich je gesehen habe:
Stellen Sie sich das für eine ganze XML-Datei vor. Ich sage nicht, dass JSON seinen Platz nicht hat, aber XML sollte nicht ausgeschlossen werden.
quelle
(foo (x:bar (@ (x:prop1 "g")) (quuz)))
JSON und XML sind beide Möglichkeiten zum Formatieren von Daten. Beide sind in der Lage, das perfekt zu machen. Kann JSON also alles tun, was XML leistet? Ja.
Aber ... Eine relevantere Frage ist möglicherweise nicht, was XML / JSON kann, sondern was Sie mit XML / JSON tun können.
Es gibt einige Dinge, die Sie mit XML tun können, von denen ich glaube, dass Sie sie mit JSON nicht können, z. B. die Übersetzung mit XLST, die Suche mit XPath und die Validierung mit Schemata. Alles sehr, sehr nützlich.
quelle
XSLT bietet viele Funktionen , die mit JSON möglicherweise nicht möglich sind. Wenn sie also nicht funktional gleichwertig sind, können sie sich nicht gegenseitig ersetzen.
quelle
Fakt ist, wir werden lange mit beiden leben müssen, und ein JSON-Fan zu sein, wird als "schädlich" angesehen.
quelle
JSON ist ziemlich neu und wird von älteren Systemen nicht unterstützt. Das Aktualisieren älterer Systeme ist teuer und führt zu Fehlern. JSON wird XML in naher Zukunft nicht ersetzen.
quelle
Ich würde sagen, dass Cwallenpoole einen hervorragenden Punkt macht. Während die meisten XML- Dateien in JSON übersetzt werden können , ist es ein separater Punkt, ob dies besser ist.
JSON eignet sich für Datenstrukturen, die mindestens genauso gut wie XML und wahrscheinlich auch besser sind, aber XML liest sich beim Markieren von Textdokumenten viel natürlicher als JSON, wenn Tags in einem größeren Textfluss verwendet werden, anstatt einfach eine Hierarchie abzugrenzen von Feldern.
Während HTML 5 möglicherweise einen eigenen Parser hat, bleiben Anwendungen wie DocBook erhalten.
quelle
Das hängt von der Domain ab. In Bezug auf Webdienste? Absolut. Es ist absolut beschämend, dass Anbieter immer noch SOAP auf ihre Kunden ausüben. REST + JSON den ganzen Weg.
Wenn Sie über komplexe, strukturierte Daten mit Stilinformationen wie Docbook oder einer anderen Implementierung sprechen? Das ist eine richtige Domain für XML.
quelle
Warum sollten Sie sich auf JSON beschränken, wenn YAML eine super Menge und viel ausdrucksvoller und daher leistungsfähiger als XML oder JSON ist?
Das heißt, wenn Sie die richtigen Serialisierungs-Frameworks verwenden, sollten Sie in der Lage sein, alle oben genannten Formate mit ein paar einfachen Codezeilen zu serialisieren und zu de-serialisieren.
quelle
Es wird hässlich, wenn Sie versuchen, diese beiden Objekte in JSON zu modellieren:
Mit JSON, wie es in 99% der Fälle verwendet wird, geht man verloren mit:
Und jetzt müssen Sie einige Metastrukturen hinzufügen, und die ganze Schönheit von JSON ist verschwunden, während Sie die Nachteile haben.
quelle
{ customer: { name: 'John Doe' }, employee : { name: 'John Doe' } }
. Also technisch gesehen ist deine Antwort nicht korrekt. :)<customer><name>John Doe</name></customer><customer><name>John Doe</name></customer>
in JSON modellieren ?Ich weiß nicht, ob es eine solche Funktion für JSON gibt, aber in .NET können Sie zumindest XML anhand eines bestimmten Schemas validieren. Das ist in meinen Augen ein wertvoller Vorteil von XML.
quelle