Heim >Web-Frontend >js-Tutorial >So konvertieren Sie XML und JSON zwischen JS
Dieses Mal werde ich Ihnen die Methode zum Konvertieren von XML und JSON mit JS vorstellen. Was sind die Vorsichtsmaßnahmen für die Konvertierung von XML und JSON mit JS? Das Folgende ist ein praktischer Fall, schauen wir uns das an.
Während der Entwicklung werden manchmal XML und JSON ineinander konvertiert, und sie müssen in JS verwendet werden. Ich habe viel im Internet gesucht, aber jedem nützlichen fehlten entweder Arme oder Beine oder die Wörter Ich habe die Bedeutung nicht zum Ausdruck gebracht. Es war zu nutzlos, ich habe beschlossen, es selbst zu erkennen.
Vergleich der Unterschiede zwischen JSON und XML
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. Sie kann zum Markieren von Daten und zum Definieren von Datentypen verwendet werden 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 mit guter Zuverlässigkeit beim Lesen und schnellen Schreibfunktionen . 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) Vor- und Nachteile von XML
acc80a873886d8118be81a328be9ec64. Vorteile von XML
A. Das Format ist einheitlich und standardkonform
B. Es ist einfacher, aus der Ferne mit anderen Systemen zu interagieren und der Datenaustausch ist bequemer.
2cc198a1d5eb0d3eb508d858c9f5cbdb. Nachteile von XML
A. XML-Dateien sind riesig, das Dateiformat ist komplex und die Übertragung nimmt Bandbreite in Anspruch
B. Sowohl der Server als auch der Client müssen aufwenden viel Code zum Parsen von XML. Dadurch werden die serverseitigen und clientseitigen Codes extrem komplex und schwer zu warten.
C. Die Art und Weise, XML zwischen verschiedenen Browsern auf der Clientseite zu analysieren, ist inkonsistent Es muss viel Code wiederholt geschrieben werden.
D. Das serverseitige und clientseitige Parsen von XML verbraucht mehr Ressourcen und Zeit.
(2). Vor- und Nachteile von JSON
f35d6e602fd7d0f0edfa6f7d103c1b57 A. Das Datenformat ist relativ einfach und leicht zu verarbeiten Lesen und Schreiben, Formatieren Sie sind alle komprimiert und beanspruchen wenig Bandbreite. B. Einfach zu analysieren, clientseitiges JavaScript kann JSON-Daten einfach über eval() lesen mehrere Sprachen, einschließlich ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby und andere serverseitige Sprachen, um das serverseitige Parsen zu erleichtern
XML in JSON in Javascript konvertieren
Schauen Sie sich zuerst das Aufrufbeispiel an:<viewport id="menuPane" layout="border"> <panel region="center" border="0" layout="border"> <tbar> <toolbar text="XXXX"> <menu> <text text="11"> </text> <text text="22"> </text> <text text="33"> </text> </menu> </toolbar> <toolbar text="XXXX"> <menu> <text text="44"> </text> <text text="55"> </text> <menu> <text text="6 6"> </text> </menu> <text text="77"> </text> </menu> </toolbar> </tbar> </panel> </viewport> var xmlParser = new XmlToJson(); var json = xmlParser.parse(xml); console.log( JSON.stringify(json) ); var jsonParser = new JsonToXml(); var xml = jsonParser.parse(json); console.log( xml );XML in JSON konvertieren:
function XmlToJson() { } XmlToJson.prototype.setXml = function(xml) { if(xml && typeof xml == "string") { this.xml = document.createElement("p"); this.xml.innerHTML = xml; this.xml = this.xml. getElementsByTagName ("*")[0]; } else if(typeof xml == "object"){ this.xml = xml; } }; XmlToJson.prototype.getXml = function() { return this.xml; }; XmlToJson.prototype.parse = function(xml) { this.setXml(xml); return this.convert(this.xml); }; XmlToJson.prototype.convert = function(xml) { if (xml.nodeType != 1) { return null; } var obj = {}; obj.xtype = xml.nodeName.toLowerCase(); var nodeValue = (xml.textContent || "").replace(/(\r|\n)/g, "").replace(/^\s+|\s+$/g, ""); if(nodeValue && xml.childNodes.length == 1) { obj.text = nodeValue; } if (xml.attributes.length > 0) { for (var j = 0; j < xml.attributes.length; j++) { var attribute = xml.attributes.item(j); obj[attribute.nodeName] = attribute.nodeValue; } } if (xml.childNodes.length > 0) { var items = []; for(var i = 0; i < xml.childNodes.length; i++) { var node = xml.childNodes.item(i); var item = this.convert(node); if(item) { items.push(item); } } if(items.length > 0) { obj.items = items; } } return obj; };
JSON in XML konvertieren:
function JsonToXml() { this.result = []; } JsonToXml.prototype.spacialChars = ["&","<",">","\"","'"]; JsonToXml.prototype.validChars = ["&","<",">",""","'"]; JsonToXml.prototype.toString = function(){ return this.result.join(""); }; JsonToXml.prototype.replaceSpecialChar = function(s){ for(var i=0;i<this.spacialChars.length;i++){ s=s.replace(new RegExp(this.spacialChars[i],"g"),this.validChars[i]); } return s; }; JsonToXml.prototype.appendText = function(s){ s = this.replaceSpecialChar(s); this.result.push(s); }; JsonToXml.prototype.appendAttr = function(key, value){ this.result.push(" "+ key +"=\""+ value +"\""); }; JsonToXml.prototype.appendFlagBeginS = function(s){ this.result.push("<"+s); }; JsonToXml.prototype.appendFlagBeginE = function(){ this.result.push(">"); }; JsonToXml.prototype.appendFlagEnd = function(s){ this.result.push("</"+s+">"); }; JsonToXml.prototype.parse = function(json){ this.convert(json); return this.toString(); }; JsonToXml.prototype.convert = function(obj) { var nodeName = obj.xtype || "item"; this.appendFlagBeginS(nodeName); var arrayMap = {}; for(var key in obj) { var item = obj[key]; if(key == "xtype") { continue; } if(item.constructor == String) { this.appendAttr(key, item); } if(item.constructor == Array) { arrayMap[key] = item; } } this.appendFlagBeginE(); for(var key in arrayMap) { var items = arrayMap[key]; for(var i=0;i<items.length;i++) { this.convert(items[i]); } } this.appendFlagEnd(nodeName); };Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben, achten Sie bitte auf andere verwandte Themen Artikel auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Welche Methoden gibt es zum Parsen von Json?
Was sind die Methoden für JS, um Json zu beurteilen?
Detaillierte Erläuterung der JSONP-Prinzipien und Fallanalyse
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie XML und JSON zwischen JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!