Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in den Unterschied zwischen XML und JSON

Detaillierte Einführung in den Unterschied zwischen XML und JSON

黄舟
黄舟Original
2017-05-07 13:49:252644Durchsuche

Ich war heute zu einem Vorstellungsgespräch und ein Personalmanager fragte mich nach dem Unterschied zwischen xml und js. Ich war traurig, dass ich es nicht getan habe. Ich habe nicht geantwortet, also habe ich nach meiner Rückkehr darüber gesprochen und etwas geschrieben:

1. XML-Definition Extensible Markup Language (XML), eine Markierung Wird zum Markieren elektronischer Dokumente verwendet, um sie strukturell zu gestalten. Die Sprache kann zum Markieren von Daten und zum Definieren von Datentypen verwendet werden. 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 den Webtransport. 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 ist und einfach und schnell geschrieben werden kann. 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
(1) Vorteile von XML
A. konform;

B .Interagieren Sie einfach aus der Ferne mit anderen Systemen 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 äußerst komplex und schwierig 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. Das Datenformat ist relativ einfach, leicht zu lesen und zu schreiben ist komprimiert und nimmt viel Speicherplatz ein;

B. Einfach zu analysieren, JSON-Daten können einfach über eval() gelesen werden.

Action

Skript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby und andere serverseitige Sprachen erleichtern das serverseitige Parsen.
D Es ist JSON-PHP aufgetaucht, das PHP-Sequenzen bevorzugt. Das transformierte Programm wird direkt aufgerufen, und das serverseitige PHP-
Objekt
, Array usw. kann direkt das JSON-Format generieren, was praktisch ist Client-Zugriff und -Extraktion;
E. Da das JSON-Format direkt vom Server verwendet werden kann, vereinfacht die Verwendung von End-Side-Code den Umfang der Code-Entwicklung auf der Server- und Client-Seite erheblich und die Aufgaben bleiben unverändert leicht zu pflegen. 2cc198a1d5eb0d3eb508d858c9f5cbdb. Nachteile von JSON Es ist nicht so beliebt und weit verbreitet wie das XML-Format und es ist nicht so vielseitig wie das derzeit verwendete XML-Format in der Web Service Promotion steckt noch in den Kinderschuhen.
3. Vergleich der Vor- und Nachteile von XML und JSON

(1). Die Lesbarkeit von JSON und XML ist im Wesentlichen gleich. Eine Seite hat die empfohlene Syntax und die andere Seite hat eine bessere Lesbarkeit.
(2). 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.
(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 natürlich viel einfacher als XML, auch ohne die Hilfe von Tools , aber es ist schwierig, XML gut zu schreiben. Nicht mehr so ​​einfach.

(4). Dekodierungsschwierigkeit. Beim Parsen von XML müssen untergeordnete und übergeordnete Knoten berücksichtigt werden, was den Leuten schwindelig macht, während die Schwierigkeit beim Parsen von JSON nahezu 0 ist. XML verliert an dieser Stelle wirklich nichts.

(5). XML ist in der Branche weit verbreitet, während JSON gerade erst begonnen hat. Im spezifischen Bereich von Ajax muss die zukünftige Entwicklung jedoch darin bestehen, dass XML JSON weichen wird. Bis dahin sollte Ajax zu Ajaj werden (Asyn

chr

onous Javascript und JSON).
(6). JSON und XML verfügen außerdem über umfangreiche Parsing-Methoden.
(7). Datenvolumen. Im Vergleich zu XML weist JSON eine geringere Datengröße und eine schnellere Übertragungsgeschwindigkeit auf.
(8). Dateninteraktion. Die Interaktion zwischen JSON und JavaScript ist bequemer, einfacher zu analysieren und zu verarbeiten und bietet eine bessere Dateninteraktion.
(9). Datenbeschreibung. JSON beschreibt Daten weniger als XML. (10). JSON ist viel schneller als XML.

4. Vergleich von XML- und JSON-Datenformaten (1). Leichtgewicht und Schwergewicht sind relative Begriffe. Was ist also das Schwergewicht von XML im Vergleich zu JSON? ist derzeit mit zwei Parsing-Methoden konzipiert: DOM und SAX. f35d6e602fd7d0f0edfa6f7d103c1b57.DOMDOM 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 dieselben, aber XML muss als übergeordnete und untergeordnete Knoten betrachtet werden. JSON ist zu diesem Zeitpunkt viel weniger schwierig zu analysieren, da JSON auf zwei Strukturen basiert: key/value, eine Sammlung von Schlüssel-Wert-Paaren; von Werten, die als Array verstanden werden können ;

2cc198a1d5eb0d3eb508d858c9f5cbdb. SAXSAX kann den analysierten Inhalt verarbeiten, ohne das gesamte Dokument zu lesen. 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. Daher besteht der leichte/schwere Unterschied zwischen JSON und XML darin, dass JSON nur eine umfassende Analyselösung bietet und diese Methode nur dann gute Ergebnisse erzielen kann, wenn weniger Daten analysiert werden. XML bietet eine schrittweise Analyse umfangreicher Datenschemata , das sich sehr gut für die Verarbeitung großer Datenmengen eignet.

(2) In Bezug auf die Schwierigkeit der Datenformatkodierung und -analyse

f35d6e602fd7d0f0edfa6f7d103c1b57. Obwohl sowohl XML als auch 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 wie XML und JSON zu schreiben sind ebenfalls textbasiert, nutzen alle die Unicode-Kodierung und sind ebenso lesbar wie das Datenaustauschformat XML. Subjektiv ist JSON sauberer 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.

2cc198a1d5eb0d3eb508d858c9f5cbdb. Im Bereich gewöhnlicher Webanwendungen machen sich Entwickler häufig Sorgen über das XML-Parsing, unabhängig davon, ob es sich um das Generieren oder Verarbeiten von XML auf der Serverseite oder das Parsen von XML auf der Clientseite mit JavaScript handelt, es führt oft zu komplexem Code und einer extrem geringen Entwicklungseffizienz. Tatsächlich benötigen die meisten Webanwendungen überhaupt kein komplexes XML, um Daten zu übertragen. Die von XML beanspruchte Erweiterbarkeit 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 XML und JSON verwenden beide strukturierte Methoden, um Daten zu markieren. Lassen Sie uns unten einen einfachen Vergleich durchführen.

[
  {
    "length" : "12",
    "url" : "http:\/\/127.0.0.1\/
resource
s\/videos\/minion_01.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_01.png",
    "ID" : "01",
    "name" : "小黄人 第01部"
  },
  {
    "length" : "14",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_02.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_02.png",
    "ID" : "02",
    "name" : "小黄人 第02部"
  },
  {
    "length" : "16",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_03.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_03.png",
    "ID" : "03",
    "name" : "小黄人 第03部"
  },
  {
    "length" : "18",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_04.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_04.png",
    "ID" : "04",
    "name" : "小黄人 第04部"
  },
  {
    "length" : "20",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_05.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_05.png",
    "ID" : "05",
    "name" : "小黄人 第05部"
  },
  {
    "length" : "22",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_06.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_06.png",
    "ID" : "06",
    "name" : "小黄人 第06部"
  },
  {
    "length" : "24",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_07.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_07.png",
    "ID" : "07",
    "name" : "小黄人 第07部"
  },
  {
    "length" : "26",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_08.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_08.png",
    "ID" : "08",
    "name" : "小黄人 第08部"
  },
  {
    "length" : "28",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_09.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_09.png",
    "ID" : "09",
    "name" : "小黄人 第09部"
  },
  {
    "length" : "30",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_10.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_10.png",
    "ID" : "10",
    "name" : "小黄人 第10部"
  },
  {
    "length" : "32",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_11.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_11.png",
    "ID" : "11",
    "name" : "小黄人 第11部"
  },
  {
    "length" : "34",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_12.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_12.png",
    "ID" : "12",
    "name" : "小黄人 第12部"
  },
  {
    "length" : "36",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_13.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_13.png",
    "ID" : "13",
    "name" : "小黄人 第13部"
  },
  {
    "length" : "38",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_14.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_14.png",
    "ID" : "14",
    "name" : "小黄人 第14部"
  },
  {
    "length" : "40",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_15.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_15.png",
    "ID" : "15",
    "name" : "小黄人 第15部"
  },
  {
    "length" : "42",
    "url" : "http:\/\/127.0.0.1\/resources\/videos\/minion_16.mp4",
    "image" : "http:\/\/127.0.0.1\/resources\/images\/minion_16.png",
    "ID" : "16",
    "name" : "小黄人 第16部"
  }
]
XML

<?xml version="1.0" encoding="UTF-8"?>
<vedios>
<vedio ID = "01" name = "小黄人 第01部" length = "12" image = "http://127.0.0.1/resources/images/minion_01.png" url = "http://127.0.0.1/resources/videos/minion_01.mp4" />    
<vedio ID = "02" name = "小黄人 第02部" length = "14" image = "http://127.0.0.1/resources/images/minion_02.png" url = "http://127.0.0.1/resources/videos/minion_02.mp4" />    
<vedio ID = "03" name = "小黄人 第03部" length = "16" image = "http://127.0.0.1/resources/images/minion_03.png" url = "http://127.0.0.1/resources/videos/minion_03.mp4" />    
<vedio ID = "04" name = "小黄人 第04部" length = "18" image = "http://127.0.0.1/resources/images/minion_04.png" url = "http://127.0.0.1/resources/videos/minion_04.mp4" />    
<vedio ID = "05" name = "小黄人 第05部" length = "10" image = "http://127.0.0.1/resources/images/minion_05.png" url = "http://127.0.0.1/resources/videos/minion_05.mp4" />    
<vedio ID = "06" name = "小黄人 第06部" length = "12" image = "http://127.0.0.1/resources/images/minion_06.png" url = "http://127.0.0.1/resources/videos/minion_06.mp4" />    
<vedio ID = "07" name = "小黄人 第07部" length = "16" image = "http://127.0.0.1/resources/images/minion_07.png" url = "http://127.0.0.1/resources/videos/minion_07.mp4" />    
<vedio ID = "08" name = "小黄人 第08部" length = "18" image = "http://127.0.0.1/resources/images/minion_08.png" url = "http://127.0.0.1/resources/videos/minion_08.mp4" />    
<vedio ID = "09" name = "小黄人 第09部" length = "20" image = "http://127.0.0.1/resources/images/minion_09.png" url = "http://127.0.0.1/resources/videos/minion_09.mp4" />    
<vedio ID = "10" name = "小黄人 第10部" length = "12" image = "http://127.0.0.1/resources/images/minion_10.png" url = "http://127.0.0.1/resources/videos/minion_10.mp4" />    
<vedio ID = "11" name = "小黄人 第11部" length = "13" image = "http://127.0.0.1/resources/images/minion_11.png" url = "http://127.0.0.1/resources/videos/minion_11.mp4" />    
<vedio ID = "12" name = "小黄人 第12部" length = "12" image = "http://127.0.0.1/resources/images/minion_12.png" url = "http://127.0.0.1/resources/videos/minion_12.mp4" />    
<vedio ID = "13" name = "小黄人 第13部" length = "11" image = "http://127.0.0.1/resources/images/minion_13.png" url = "http://127.0.0.1/resources/videos/minion_13.mp4" />    
<vedio ID = "14" name = "小黄人 第14部" length = "15" image = "http://127.0.0.1/resources/images/minion_14.png" url = "http://127.0.0.1/resources/videos/minion_14.mp4" />    
<vedio ID = "15" name = "小黄人 第15部" length = "14" image = "http://127.0.0.1/resources/images/minion_15.png" url = "http://127.0.0.1/resources/videos/minion_15.mp4" />    
<vedio ID = "16" name = "小黄人 第16部" length = "18" image = "http://127.0.0.1/resources/images/minion_16.png" url = "http://127.0.0.1/resources/videos/minion_16.mp4" /></vedios>
Im Hinblick auf die Lesbarkeit der Kodierung hat XML offensichtliche Vorteile. Schließlich kommt die menschliche Sprache einer solchen Beschreibungsstruktur näher. JSON liest sich eher wie ein Datenblock und ist verwirrender zu lesen. Die für uns schwer lesbare Sprache eignet sich jedoch genau zum maschinellen Lesen, sodass der Wert von „Heilongjiang“ über JSONs

indexcountry.provinces[0] gelesen werden kann. .Name . In Bezug auf die handschriftliche Schwierigkeit beim Codieren ist XML einfacher zu lesen und natürlich auch leicht 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 den Unterschied zwischen XML und JSON. 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