1. Einführung in die Definition
(1).XML-Definition
Extensible Markup Language (XML), eine Auszeichnungssprache, die zum Markieren elektronischer Dokumente verwendet wird, um sie strukturell zu gestalten um Daten zu markieren und Datentypen zu definieren. Es handelt sich um eine Quellsprache, die es Benutzern ermöglicht, ihre eigene Auszeichnungssprache zu definieren. XML verwendet die Dokumenttypdefinition DTD (Document Type Definition), um Daten zu organisieren. Das Format ist einheitlich, plattform- und sprachübergreifend und hat sich in der Branche längst zu einem anerkannten Standard entwickelt.
XML ist eine Teilmenge der Standard Generalized Markup Language (SGML) und eignet sich gut für die Webübertragung. XML bietet eine einheitliche Methode zum Beschreiben und Austauschen strukturierter Daten unabhängig von Anwendungen oder Anbietern.
(2).JSON-Definition
JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat, das gut lesbar und einfach und schnell zu schreiben ist. Der Datenaustausch zwischen verschiedenen Plattformen ist möglich. JSON verwendet ein hochkompatibles und vollständig sprachunabhängiges Textformat und weist außerdem ein Systemverhalten auf, das den Gewohnheiten der C-Sprache ähnelt (einschließlich C, C++, C#, Java, JavaScript, Perl, Python usw.). Diese Eigenschaften machen JSON zu einer idealen Datenaustauschsprache.
JSON basiert auf der Programmiersprache JavaScript, einer Teilmenge des Standards ECMA-262, 3. Ausgabe – Dezember 1999.
2. Vor- und Nachteile von XML und JSON
(1) Vorteile und Nachteile von XML
A. Vereinheitlichtes und standardkonformes Format; B. Einfache Ferninteraktion mit anderen Systemen und komfortablerer Datenaustausch.
<2>. Nachteile von XML
A. XML-Dateien sind riesige, komplexe Dateiformate und die Übertragung verbraucht Bandbreite
Serverseitig Sowohl der Client als auch der Client müssen viel Code zum Parsen von XML aufwenden, was dazu führt, dass die serverseitigen und clientseitigen Codes äußerst komplex und schwierig zu warten sind.
C. Das Die Art und Weise, wie verschiedene Browser XML auf der Clientseite analysieren, ist inkonsistent. Es muss viel Code wiederholt geschrieben werden.
D. Der Server und der Client verbringen mehr Ressourcen und Zeit mit der XML-Analyse.
(2). Vor- und Nachteile von JSON
<2>. Nachteile von JSON
B. Die Förderung des JSON-Formats im Web Service steckt noch in den Kinderschuhen.
(1).
Die Lesbarkeit von JSON und XML ist im Wesentlichen gleich. Einerseits ist die empfohlene Syntax und andererseits die standardisierte Tag-Form lesbar.
XML ist natürlich sehr skalierbar, und natürlich auch JSON. Es gibt nichts, was XML erweitern kann, was JSON nicht kann.
(3).
XML verfügt über zahlreiche Codierungstools wie Dom4j, JDom usw., und JSON verfügt auch über Tools, die von json.org bereitgestellt werden. Allerdings ist die JSON-Codierung offensichtlich viel einfacher als XML Auch ohne den Einsatz von Tools ist es nicht einfach, XML gut zu schreiben.
(5).
XML ist in der Branche weit verbreitet und JSON hat gerade erst begonnen. Im spezifischen Bereich von Ajax muss die zukünftige Entwicklung jedoch darin bestehen, dass XML durch JSON ersetzt wird. Bis dahin sollte Ajax zu Ajaj (Asynchronous Javascript und JSON) werden.
(6).
JSON und XML verfügen ebenfalls über umfangreiche Parsing-Methoden.
(7).
Im Vergleich zu XML hat JSON eine geringere Datengröße und eine schnellere Übertragungsgeschwindigkeit.
(8).
Die Interaktion zwischen JSON und JavaScript ist bequemer, einfacher zu analysieren und zu verarbeiten und sorgt für eine bessere Dateninteraktion.
DOM betrachtet ein Datenaustauschformat XML als DOM-Objekt und die gesamte XML-Datei muss in den Speicher eingelesen werden. Die Prinzipien von JSON und XML sind in dieser Hinsicht gleich, XML muss jedoch übergeordnete und untergeordnete Knoten berücksichtigen . JSON ist viel weniger schwierig zu analysieren, da JSON auf zwei Strukturen basiert: Schlüssel/Wert, eine geordnete Sammlung von Werten, die als Array verstanden werden kann; ;2>.SAX
SAX kann den analysierten Inhalt verarbeiten, ohne das gesamte Dokument zu lesen. Es handelt sich um eine schrittweise Analysemethode. Das Programm kann das Parsen auch jederzeit beenden. Auf diese Weise kann ein großes Dokument schrittweise und Stück für Stück angezeigt werden, sodass SAX für das Parsen in großem Maßstab geeignet ist. Dies ist derzeit mit JSON nicht möglich.
Der leichte/schwere Unterschied zwischen JSON und XML ist also:
JSON bietet nur eine umfassende Parsing-Lösung, und diese Methode kann nur dann gut funktionieren, wenn weniger Daten analysiert werden
XML bietet eine schrittweise Analyselösung für große Datenmengen, die sich sehr gut für die Verarbeitung großer Datenmengen eignet.
(2) In Bezug auf die Schwierigkeit der Datenformatkodierung und -analyse
<1>.
Obwohl XML und JSON über eigene Codierungstools verfügen, ist die Codierung von JSON einfacher als die von XML. Sie können JSON-Code auch ohne die Hilfe von Tools schreiben, aber es ist etwas schwierig, guten XML-Code zu schreiben ; Wie XML ist JSON textbasiert, verwendet Unicode-Codierung und ist genauso lesbar wie das Datenaustauschformat XML.
Subjektiv gesehen ist JSON klarer und weniger redundant. Die JSON-Website bietet eine strenge, wenn auch kurze Beschreibung der JSON-Syntax. Im Allgemeinen eignet sich XML besser zum Markieren von Dokumenten, während JSON besser für die Datenaustauschverarbeitung geeignet ist.
<2>.
Im Bereich gewöhnlicher Webanwendungen machen sich Entwickler häufig Gedanken über das Parsen von XML. Unabhängig davon, ob XML auf der Serverseite generiert oder verarbeitet wird oder XML auf der Clientseite mithilfe von JavaScript analysiert wird, führt dies häufig zu komplexem Code Extrem niedrige Latenz. Entwicklungseffizienz.
Tatsächlich benötigen die meisten Webanwendungen überhaupt kein komplexes XML, um Daten zu übertragen. Die von XML beanspruchte Skalierbarkeit hat hier selten einen Vorteil. Viele Ajax-Anwendungen geben HTML-Fragmente sogar direkt zurück, um dynamische Webseiten zu erstellen. Im Vergleich zur Rückgabe und Analyse von XML verringert die Rückgabe von HTML-Fragmenten die Komplexität des Systems erheblich, es fehlt jedoch auch ein gewisses Maß an Flexibilität. Das Datenaustauschformat JSON bietet mehr Einfachheit und Flexibilität als XML- oder HTML-Fragmente. In Web-Service-Anwendungen hat XML zumindest derzeit noch eine unerschütterliche Stellung.
(3) Beispielvergleich
Sowohl XML als auch JSON verwenden strukturierte Methoden, um Daten zu markieren.
<1>. Dargestellt in XML wie folgt:
<?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>
var country = { name: "中国", provinces: [ { name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} }, { name: "广东", citys: { city: ["广州", "深圳", "珠海"]} }, { name: "台湾", citys: { city: ["台北", "高雄"]} }, { name: "新疆", citys: { city: ["乌鲁木齐"]} } ] }
In Bezug auf die Handschriftschwierigkeit beim Codieren ist XML einfacher zu lesen und natürlich 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.
Fallantrag: Provinzielle dreistufige Verknüpfung
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/封装Ajax.js" type="text/javascript" charset="utf-8"></script> </head> <body> <select name="provence" id="provence" onchange="chooseP(this.value)"> <option>湖北省</option> </select> <select name="city" id="city" onchange="chooseC(this.value)"> <option>武汉市</option> </select> <select name="area" id="area"> <option>江城区</option> </select> </body> <script> objAJAX.getAjax("get", "xml/Provinces.xml", "", callBackOk, callBackFail, ""); function callBackOk(data) { var provences = data.getElementsByTagName("Province"); /*<Province ID="1" ProvinceName="北京市">北京市</Province> */ for(var i = 0; i < provences.length; i++) { var Potion = document.createElement("option"); //<option><option/> Potion.value = provences[i].getAttribute("ID"); //把id传给value Potion.innerHTML = provences[i].innerHTML; document.getElementById("provence").appendChild(Potion); } } function callBackFail() { alert("服务器出错啦") } //市级联动 function chooseP(id) { objAJAX.getAjax("get", "xml/Cities.xml", "", callBackOkP, callBackFailP, ""); function callBackOkP(data) { document.getElementById("city").innerHTML = ""; //alert( typeof data) var citys = data.getElementsByTagName("City"); //alert(citys.length) /*<City ID="1" CityName="北京市" PID="1" ZipCode="100000">北京市</City>*/ for(var i = 0; i < citys.length; i++){ var Coption = document.createElement("option"); //<option><option/> Coption.value = citys[i].getAttribute("ID"); var PID = citys[i].getAttribute("PID"); if(id == PID) { Coption.innerHTML = citys[i].innerHTML; var dd=Coption.value; document.getElementById("city").appendChild(Coption); } } alert(Cvalue); chooseC(Cvalue); } function callBackFailP() { alert("服务器出错啦") } } //县级联动 function chooseC(id) { objAJAX.getAjax("get", "xml/Districts.xml", "", callBackOkP, callBackFailP, ""); function callBackOkP(data) { document.getElementById("area").innerHTML = ""; //alert( typeof data) var districts = data.getElementsByTagName("District"); //alert(citys.length) /* <District ID="1" DistrictName="东城区" CID="1">东城区</District>*/ for(var i = 0; i < districts.length; i++) { var Xoption = document.createElement("option"); //<option><option/> Xoption.value = districts[i].getAttribute("ID"); var CID = districts[i].getAttribute("CID"); if(id == CID) { Xoption.innerHTML = districts[i].innerHTML; document.getElementById("area").appendChild(Xoption); } } } function callBackFailP() { alert("服务器出错啦") } } </script> </html>