Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in die Unterschiede und Verwendung des JSON-Datenformats und des XML-Datenformats

Detaillierte Einführung in die Unterschiede und Verwendung des JSON-Datenformats und des XML-Datenformats

黄舟
黄舟Original
2017-03-18 17:19:511732Durchsuche

JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat. Für Menschen leicht zu lesen und zu schreiben und für Maschinen leicht zu analysieren und zu generieren. Es basiert auf einer Teilmenge von JavaScript (Standard ECMA-262, 3. Ausgabe – Dezember 1999). JSON verwendet ein völlig sprachunabhängiges Textformat, verwendet aber auch Konventionen ähnlich der C-Sprachfamilie (einschließlich C, C++, C#, Java, JavaScript, Perl, Python usw.). ). Diese Eigenschaften machen JSON zu einer idealen Datenaustauschsprache.

Vergleich von JSON und XML
◆Lesbarkeit
Die Lesbarkeit von JSON und XML ist vergleichbar, mit einfacher Syntax auf der einen Seite und standardisierten Tags auf der anderen Seite Es ist schwer, den Gewinner zu sagen.
◆Erweiterbarkeit
XML ist von Natur aus sehr skalierbar, und JSON hat es auf jeden Fall. Es gibt nichts, was XML erweitern kann, was JSON nicht kann. JSON ist jedoch in Javascript zu Hause und kann zusammengesetzte Javascript--Objekte speichern, was unvergleichliche Vorteile gegenüber XML bietet.
◆Codierungsschwierigkeit
XML verfügt über eine Fülle von Codierungstools wie Dom4j, JDom usw., und JSON bietet auch Tools. Ich glaube, dass erfahrene Entwickler ohne Tools schnell das gewünschte XML-Dokument und den gewünschten JSONString schreiben können. XML-Dokumente erfordern jedoch viel mehr Strukturzeichen.
◆Dekodierungsschwierigkeit
Es gibt zwei Möglichkeiten, XML zu analysieren:
Eine besteht darin, das Dokument Modell zu analysieren, d. h. über das übergeordnete Tag zu indizieren um eine Reihe von Tags zu erstellen.
Zum Beispiel: xmlData.getElementsByTagName_r("tagName"), dies muss jedoch verwendet werden, wenn die Dokumentstruktur im Voraus bekannt ist und nicht universell gekapselt werden kann.
Eine andere Methode besteht darin, die Knoten (document und childNodes) zu durchlaufen. Dies kann durch Rekursion erreicht werden, aber die analysierten Daten liegen immer noch in unterschiedlichen Formen vor und können oft nicht die bereits bestehenden Anforderungen erfüllen.
Es muss sehr schwierig sein, solche skalierbaren strukturierten Daten zu analysieren.
Das Gleiche gilt für JSON. Wenn Sie die JSON-Struktur im Voraus kennen, ist die Verwendung von JSON für die Datenübertragung einfach wunderbar. Sie können sehr praktischen, schönen und lesbaren Code schreiben. Wenn Sie ein reiner Frontend-Entwickler sind, wird Ihnen JSON auf jeden Fall sehr gefallen. Aber wenn Sie ein Anwendungsentwickler sind, gefällt es Ihnen nicht so gut. Schließlich ist XML die eigentliche strukturierte Auszeichnungssprache, die für die Datenübertragung verwendet wird.
Und wenn Sie die Struktur von JSON nicht kennen und JSON nicht analysieren, wäre das ein Albtraum. Dies ist nicht nur zeit- und arbeitsintensiv, der Code wird auch überflüssig und langwierig und die erzielten Ergebnisse werden unbefriedigend sein. Dies hat jedoch keinen Einfluss darauf, dass sich viele Frontend-Entwickler für JSON entscheiden. Weil toJSONString() in json.js die String-Struktur von JSON sehen kann. Natürlich nicht mit dieser Saite, was immer noch ein Albtraum ist. Wenn Personen, die JSON häufig verwenden, diese Zeichenfolge sehen, verstehen sie die Struktur von JSON klar und können JSON einfacher bedienen.
Das Obige ist das Parsen von XML und JSON nur für die Datenübertragung in Javascript. Im Bereich Javascript ist JSON schließlich das Heimatgebiet und seine Vorteile sind XML natürlich weit überlegen. Wenn zusammengesetzte Javascript-Objekte in JSON gespeichert sind und ihre Struktur nicht bekannt ist, werden meiner Meinung nach auch viele Programmierer beim Parsen von JSON weinen.
◆Beispielvergleich
Sowohl XML als auch JSON verwenden strukturierte Methoden, um Daten zu markieren. Lassen Sie uns unten einen einfachen Vergleich durchführen.
Verwenden Sie XML, um Daten einiger Provinzen und Städte in China wie folgt darzustellen:

<?xml version="1.0" encoding="utf-8"?>
    <country>
    <name>中国</name>
    <province>
    <name>黑龙江</name>
    <citys>
    <city>哈尔滨</city>
    <city>大庆</city>
    </citys>
    </province>
    <province>
    <name>广东</name>
    <citys>
    <city>广州</city>
    <city>深圳</city>
    <city>珠海</city>
    </citys>
    </province>
    <province>
    <name>台湾</name>
    <citys>
    <city>台北</city>
    <city>高雄</city>
    </citys>
    </province>
    <province>
    <name>新疆</name>
    <citys>
    <city>乌鲁木齐</city>
    </citys>
    </province>
    </country>

    用JSON表示如下:
    {
    name:"中国",
    province:[
    {
    name:"黑龙江",
    citys:{
    city:["哈尔滨","大庆"]
    }
    },
    {
    name:"广东",
    citys:{
    city:["广州","深圳","珠海"]
    }
    },
    {
    name:"台湾",
    citys:{
    city:["台北","高雄"]
    }
    },
    {
    name:"新疆",
    citys:{
    city:["乌鲁木齐"]
    }
    }
    ]
    }

Xml hat offensichtliche Vorteile in Bezug auf die Lesbarkeit der Codierung. Schließlich kommt die menschliche Sprache einer solchen Beschreibungsstruktur näher. JSON liest sich eher wie ein Datenblock, was das Lesen verwirrender macht. Die für uns schwer lesbare Sprache eignet sich jedoch genau zum maschinellen Lesen, sodass der Wert von „Heilongjiang“ über den JSON-Index .province[0].name gelesen werden kann. In Bezug auf die handschriftliche Schwierigkeit beim Codieren ist XML immer noch komfortabler. Es ist einfacher zu lesen und natürlich auch einfacher zu schreiben. Allerdings sind die geschriebenen JSON-Zeichen offensichtlich deutlich geringer. Wenn Sie die leeren Tabulatoren und Zeilenumbrüche entfernen, ist JSON dicht mit nützlichen Daten gefüllt, während XML viele sich wiederholende Markup-Zeichen enthält.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Unterschiede und Verwendung des JSON-Datenformats und des XML-Datenformats. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn