Heim > Artikel > Backend-Entwicklung > JSON und XML – detaillierte Erklärung der Unterschiede
[Anmerkung des Herausgebers] Der Autor dieses Artikels, Yegor Bugayenko, ist Mitbegründer von Teamed.io und verfügt über umfassende Forschung in den Bereichen Softwarequalität und technische Managementmethoden. In diesem Artikel erklärt der Autor die vier Hauptfunktionen von XML ausführlicher, indem er JSON vergleicht, um Ihnen bei der Auswahl des geeigneten Datenformattyps beim Erstellen eines Projekts zu helfen.
Viele Menschen sind in ihrem Herzen verwickelt. Wenn man JSON und XML vergleicht, wer ist besser und wer ist schneller? Welches sollten Sie für Ihr nächstes neues Projekt wählen? Sei nicht dumm! Es gibt absolut keinen Vergleich. Können Sie sagen, welches wie das Motorrad und der AMG S65 besser ist? Obwohl es sich bei beiden um Fortbewegungsmittel handelt, ist in manchen Fällen ein Fahrrad bequemer. Das Gleiche gilt also für JSON und XML. Beide haben ihre eigenen Vorzüge und es besteht überhaupt keine Notwendigkeit, sie zu vergleichen.
Das Folgende sind einfache JSON-Daten (140 Zeichen):
{ "id": 123, "title": "Object Thinking", "author": "David West", "published": { "by": "Microsoft Press", "year": 2004 } }
Die gleichen Daten werden in XML wie folgt dargestellt (167 Zeichen):
<?xml version="1.0"?> <book id="123"> <title>Object Thinking</title> <author>David West</author> <published> <by>Microsoft Press</by> <year>2004</year> </published> </book>
Der Unterschied ist leicht zu erkennen. Ersteres ist einfacher und leichter zu verstehen und kann perfekt in JavaScript analysiert werden. Können wir also einfach auf XML verzichten und uns für JSON entscheiden? Wer braucht eine 15-jährige Schwergewichtssprache?
Aber im Gegenteil, ich liebe XML sehr und ich möchte es im Folgenden näher erläutern.
Aber verstehen Sie mich nicht falsch, dieser Artikel ist nicht gegen JSON. JSON ist in der Tat ein großartiges Datenformat, aber es ist nur ein Datenformat, das oft ad hoc verwendet wird, um Daten von Punkt A nach Punkt B zu übertragen. Es ist kürzer und besser lesbar als XML, aber das ist es auch schon.
XML ist eine sehr leistungsfähige Sprache und nicht nur ein einfaches Datenformat. Im Vergleich zu JSON und anderen einfachen Datenformaten wie YAML weist XML mindestens die folgenden vier wichtigen Merkmale auf.
Attribute und NamespacesMetadaten können zu den XML-Daten hinzugefügt werden, genau wie das id-Attribut oben. Daten werden in Elementen wie dem Namen eines Buchautors gespeichert, und Metadaten (die Daten der Daten) sollten als Attribute gespeichert werden, was die Organisation und Strukturierung der Informationen erheblich erleichtert. Am wichtigsten ist, dass sowohl Elemente als auch Attribute als zu einem Namespace gehörend markiert werden können, was besonders vorteilhaft ist, wenn mehrere Anwendungen dasselbe XML-Dokument verwenden.
Stellen Sie sich diese Situation vor: Wenn Sie ein XML-Dokument auf einer Maschine erstellen, wurden mehrere Änderungen vorgenommen Da die Dokumente mehrmals auf anderen Computern gespeichert und dann zur Nutzung auf andere Computer übertragen wurden, musste sichergestellt werden, dass die Dokumentstruktur nicht durch Zwischenoperationen zerstört wurde. Beispielsweise kann eine Person 0c3cf0b2c04bac3a6167f8eb4d75545f verwenden, um das Veröffentlichungsdatum zu speichern, während eine andere Person c0e50c73d56594bf7dd66b3bdfe67150 im ISO-8601-Format verwenden kann. Um solche strukturellen Verwirrungen zu vermeiden, können wir ein XML-Schema für das Beschreibungsdokument erstellen und es zusammen mit dem Hauptdokument speichern. Vor jeder Operation am Hauptdokument muss dessen Korrektheit anhand der Schemadatei überprüft werden. Dies ist eine Art Integrationstest während des Produktionsprozesses. RelaxNG verfügt über einen ähnlichen Mechanismus, der jedoch viel einfacher ist. Wenn Sie der Meinung sind, dass XML-Schema zu kompliziert ist, können Sie es mit RelaxNG versuchen.
Tatsächlich kann die Änderung von XML-Dokumenten ohne Java/Ruby-Code durchgeführt werden. Einfach ausgedrückt erstellen Sie einfach ein XSL-Transformationsdokument, wenden es auf das ursprüngliche XML an und erhalten ein neues XML. Die XSL-Sprache (Purely Functional Language) ist für die hierarchische Datenmanipulation konzipiert und für diese Aufgabe besser geeignet als Java oder jede andere objektorientierte/prozedurale Sprache. Mit XSL können Sie XML in jede beliebige Form umwandeln, einschließlich Nur-Text und HTML. Viele Leute beschweren sich, dass XSL zu kompliziert ist, aber es ist nicht so schwierig. Die Kernfunktionen von XSL sind eigentlich sehr einfach, also probieren Sie es einfach aus. Die oben genannten Funktionen sind nicht alle Funktionen von XML, aber diese vier Funktionen sind in der Tat sehr nützlich. Sie können das Dokument nicht nur „autark“ machen, sondern auch eine Selbstvalidierung durchführen (XML-Schema), dann wissen, wie man es ändert (XSL) und schließlich den Dokumentinhalt einfach abrufen (Xpath).
Gleichzeitig gibt es viele XML-basierte Sprachen, Standards und Anwendungen auf dem Markt, darunter Xforms, SVG, MathML, RDF, OWL, WSDL usw. In allgemeinen Mainstream-Projekten werden sie jedoch nicht eingesetzt, weil sie zu zielgerichtet sind.
Der Zweck des JSON-Entwurfs besteht nicht darin, die oben genannten Eigenschaften zu erfüllen, obwohl das JSON-Feld jetzt hart arbeitet, einschließlich JSONPath für die Abfrage, einiger Konvertierungstools und JSON-Schema für die Validierung, verglichen mit dem leistungsstarken XML Es ist nur eine triviale Nachahmung. Ich glaube nicht, dass es eine langfristige Entwicklung geben wird und früher oder später verschwinden wird.
Zusammenfassend lässt sich sagen, dass JSON ein einfaches Datenformat ohne zu viele zusätzliche Funktionen ist. Der beste Anwendungsfall ist AJAX. Ansonsten empfehle ich jedem dringend, XML zu verwenden.
OneAPM bietet Ihnen End-to-End-Lösungen für die Leistung von Java-Anwendungen. Wir unterstützen alle gängigen Java-Frameworks und Anwendungsserver und helfen Ihnen, Systemengpässe schnell zu erkennen und die Ursache von Anomalien zu lokalisieren. In wenigen Minuten bereitstellen und sofort erleben – Java-Überwachung war noch nie so einfach. Um weitere technische Artikel zu lesen, besuchen Sie bitte den offiziellen technischen Blog von OneAPM.
Das obige ist der detaillierte Inhalt vonJSON und XML – detaillierte Erklärung der Unterschiede. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!