Maison > développement back-end > Tutoriel XML/RSS > Introduction détaillée à la différence entre XML et JSON

Introduction détaillée à la différence entre XML et JSON

黄舟
Libérer: 2017-05-07 13:49:25
original
2652 Les gens l'ont consulté

Je suis allé pour un entretien aujourd'hui, et un responsable des ressources humaines m'a demandé la différence entre xml et json, je me sentais triste de ne pas l'avoir fait. Je n'ai pas répondu, alors j'en ai parlé après mon retour. Consultez les informations pertinentes et écrivez quelque chose : :

1 Introduction à la définition
(1) Définition XML (Extensible Markup Language). utilisé pour marquer les documents électroniques afin de les rendre structurels. Le langage peut être utilisé pour marquer les données et définir les types de données. Il s'agit d'un langage source qui permet aux utilisateurs de définir leur propre langage de balisage. XML utilise la définition du type de document DTD (document type definition) pour organiser les données ; le format est unifié, multiplateforme et multilingue, et est depuis longtemps devenu une norme reconnue dans l'industrie. XML est un sous-ensemble du langage SGML (Standard Generalized Markup Language) et convient parfaitement au transport Web. XML fournit une méthode unifiée pour décrire et échanger des données structurées indépendamment des applications ou des fournisseurs.
(2).Définition JSON JSON (JavaScript Object Notation) est un format d'échange de données léger qui a une bonne lisibilité et est facile à écrire rapidement. L'échange de données entre différentes plateformes est possible. JSON adopte un format de texte hautement compatible et totalement indépendant du langage, et présente également un comportement système similaire aux habitudes du langage C (notamment C, C++, C#, Java, JavaScript, Perl, Python, etc.). Ces propriétés font de JSON un langage d'échange de données idéal. JSON est basé sur le langage de programmation JavaScript, un sous-ensemble de la norme ECMA-262 3e édition - décembre 1999.
2. Avantages et inconvénients de XML et JSON
(1) Avantages et inconvénients de XML

<1>. Avantages de XML
A. conforme ;
B. Il est facile d'interagir à distance avec d'autres systèmes et le partage de données est plus pratique.

<2>. Inconvénients du XML
Les fichiers A.XML sont énormes, le format de fichier est complexe et la transmission consomme de la bande passante
B.Le serveur et le client doivent dépenser ; beaucoup de code pour analyser XML, En conséquence, les codes côté serveur et côté client deviennent extrêmement complexes et difficiles à maintenir
C La manière d'analyser XML entre les différents navigateurs côté client est incohérente, et beaucoup de code doit être écrit à plusieurs reprises ;
D. L'analyse XML côté serveur et côté client consomme plus de ressources et de temps.

(2). Avantages et inconvénients de JSON

<1>. Avantages de JSON :
A. est compressé et prend beaucoup de place Petite bande passante ;
B. Facile à analyser, JavaScript côté client peut simplement lire les données JSON via eval(); Prend en charge plusieurs langages, y compris
Action. Script, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby et d'autres langages côté serveur facilitent l'analyse côté serveur Dans le monde PHP, PHP-JSON et JSON-PHP est apparu, privilégiant les séquences PHP. Le programme transformé est directement appelé, et l'
objet côté serveur PHP, le tableau, etc. peut générer directement le format JSON, ce qui est pratique pour accès client et extraction ; E. Parce que le format JSON peut être directement utilisé par le serveur. L'utilisation du code côté final simplifie grandement la quantité de développement de code côté serveur et côté client, et les tâches restent inchangées et sont facile à entretenir.

<2>. Inconvénients de JSON

A. Il n'est pas aussi populaire et largement utilisé que le format XML, et il n'est pas aussi polyvalent que le format XML
B. dans la promotion des services Web en est encore à ses balbutiements.

3. Comparaison des avantages et des inconvénients de XML et JSON

(1). La lisibilité des données de JSON et XML est fondamentalement la même. La lisibilité de JSON et XML est presque la même. Un côté a la syntaxe recommandée et l'autre côté a la forme de balise standardisée qui est plus lisible.

(2). XML est naturellement très évolutif, et JSON l'a certainement. Il n'y a rien que XML puisse étendre que JSON ne puisse pas.
(3). Difficulté de codage. XML dispose d'une multitude d'outils de codage, tels que Dom4j, JDom, etc., et JSON dispose également d'outils fournis par json.org. Cependant, le codage JSON est évidemment beaucoup plus simple que XML. Vous pouvez écrire du code JSON même sans l'aide d'outils. , mais il est difficile de bien écrire du XML. Ce n'est plus si facile.
(4). Difficulté de décodage. L'analyse de XML doit prendre en compte les nœuds enfants et les nœuds parents, ce qui donne le vertige, alors que la difficulté d'analyser JSON est presque nulle. XML ne perd vraiment rien à ce stade.
(5). Popularité. XML a été largement utilisé dans l'industrie et JSON ne fait que commencer. Cependant, dans le domaine spécifique d'Ajax, le développement futur doit être que XML cède la place à JSON. D'ici là, Ajax devrait devenir Ajaj (Asyn
chrJavascript et JSON). (6). Méthodes d’analyse. JSON et XML disposent également de méthodes d'analyse riches.
(7). Volume de données. Comparé à XML, JSON a une taille de données plus petite et une vitesse de transmission plus rapide.
(8). Interaction des données. L'interaction entre JSON et JavaScript est plus pratique, plus facile à analyser et à traiter et offre une meilleure interaction des données.
(9). Description des données. JSON est moins descriptif des données que XML.
(10). Vitesse de transmission. JSON est beaucoup plus rapide que XML.

4. Comparaison des formats de données XML et JSON
(1). Concernant les termes léger et lourd, léger et lourd sont des termes relatifs, alors quel est le poids lourd de XML par rapport à JSON Cela devrait-il être reflété dans l'analyse. est actuellement conçu avec deux méthodes d'analyse : DOM et SAX. <1>.DOMDOM considère un format d'échange de données XML comme un objet DOM, et l'intégralité du fichier XML doit être lu dans la mémoire. Les principes de JSON et XML sont les mêmes à cet égard, mais. XML doit être considéré comme les nœuds parents et les nœuds enfants, JSON est beaucoup moins difficile à analyser à ce stade, car JSON est construit sur deux structures : key/value, une collection de paires clé-valeur ; de valeurs, qui peut être compris comme un tableau ;

<2>. SAXSAX peut traiter le contenu analysé sans lire l'intégralité du document. Le programme peut également terminer l'analyse à tout moment. De cette façon, un document volumineux peut être affiché progressivement et petit à petit, SAX convient donc à une analyse à grande échelle. Ce n'est actuellement pas possible avec JSON. Par conséquent, la différence légère/lourde entre JSON et XML est la suivante : JSON ne fournit qu'une solution d'analyse globale, et cette méthode ne peut obtenir de bons résultats qu'en analysant moins de données. XML fournit une analyse étape par étape d'un schéma de données à grande échelle ; , ce qui est très approprié pour traiter de grandes quantités de données.

(2). Concernant la difficulté d'encodage et d'analyse du format de données

<1>. Bien que XML et JSON disposent de leurs propres outils de codage, le codage de JSON est plus simple que celui de XML. Vous pouvez écrire du code JSON même sans l'aide d'outils, mais il est un peu difficile d'écrire du bon code XML comme XML, JSON. est également basé sur du texte, ils utilisent tous le codage Unicode et sont aussi lisibles que le format d'échange de données XML. Subjectivement, JSON est plus propre et moins redondant. Le site Web JSON fournit une description stricte, quoique brève, de la syntaxe JSON. De manière générale, XML est plus adapté au marquage des documents, tandis que JSON est plus adapté au traitement des échanges de données.

<2>. En termes d'analyse. Dans le domaine des applications Web ordinaires, les développeurs s'inquiètent souvent de l'analyse XML. Qu'il s'agisse de générer ou de traiter du XML côté serveur, ou d'analyser du XML côté client à l'aide de JavaScript, cela entraîne souvent un code complexe et une efficacité de développement extrêmement faible. En fait, pour la plupart des applications Web, elles n'ont pas du tout besoin de XML complexe pour transmettre des données. L'extensibilité revendiquée par XML présente ici rarement un avantage. De nombreuses applications Ajax renvoient même directement des fragments HTML pour créer des pages Web dynamiques. Comparé au renvoi de XML et à son analyse, le renvoi de fragments HTML réduit considérablement la complexité du système, mais il manque également d'un certain degré de flexibilité. Le format d'échange de données JSON offre une plus grande simplicité et flexibilité que les fragments XML ou HTML. Dans les applications de services Web, du moins pour l'instant, XML occupe toujours une position inébranlable.
(3). Exemple de comparaison XML et JSON utilisent tous deux des méthodes structurées pour marquer les données. Faisons une comparaison simple ci-dessous.

[
  {
    "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部"
  }
]
Copier après la connexion

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>
Copier après la connexion

En termes de lisibilité de l'encodage, XML présente des avantages évidents. Après tout, le langage humain est plus proche d'une telle structure de description. JSON se lit davantage comme un bloc de données et est plus déroutant à lire. Cependant, la langue qui nous est difficile à lire convient parfaitement à la lecture automatique, donc la valeur de "Heilongjiang" peut être lue via l'indexcountry.provinces[0] de JSON. .nom . En termes de difficulté d'écriture manuscrite du codage, XML est plus confortable. Il est facile à lire et bien sûr à écrire. Cependant, les caractères JSON écrits sont évidemment bien moindres. Si vous supprimez les tabulations vides et les sauts de ligne, JSON regorge de données utiles, tandis que XML contient de nombreux caractères de balisage répétés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal