Maison  >  Article  >  développement back-end  >  Introduction détaillée aux différences et à l'utilisation du format de données JSON et du format de données XML

Introduction détaillée aux différences et à l'utilisation du format de données JSON et du format de données XML

黄舟
黄舟original
2017-03-18 17:19:511796parcourir

JSON (JavaScript Object Notation) est un format d'échange de données léger. Facile à lire et à écrire pour les humains, et facile à analyser et à générer pour les machines. Il est basé sur un sous-ensemble de JavaScript (Standard ECMA-262 3e édition – décembre 1999). JSON utilise un format de texte totalement indépendant du langage, mais utilise également des conventions similaires à la famille des langages 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.

Comparaison de JSON et XML
◆Lisibilité
La lisibilité de JSON et XML est comparable, avec une syntaxe simple d'un côté et des balises standardisées de l'autre. difficile de dire qui sera le gagnant.
◆Extensibilité
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. Cependant, JSON est à l'aise en Javascript et peut stocker des objets composites Javascript , ce qui présente des avantages incomparables par rapport au XML.
◆Difficulté de codage
XML dispose d'une multitude d'outils de codage, tels que Dom4j, JDom, etc., et JSON fournit également des outils. Sans outils, je pense que les développeurs qualifiés peuvent écrire rapidement le document XML et la chaîne JSON souhaités. Cependant, les documents XML nécessitent beaucoup plus de caractères structurels.
◆Difficulté de décodage
Il existe deux façons d'analyser XML :
L'une consiste à analyser le document modèle , c'est-à-dire à indexer via la balise parent pour produire un ensemble de balises.
Par exemple : xmlData.getElementsByTagName_r("tagName"), mais ceci doit être utilisé lorsque la structure du document est connue à l'avance et ne peut pas être encapsulée universellement.
Une autre méthode consiste à parcourir les nœuds (document et childNodes). Ceci peut être réalisé grâce à la récursion, mais les données analysées sont toujours sous des formes différentes et ne peuvent souvent pas répondre aux exigences préexistantes.
Il doit être très difficile d'analyser des données structurées aussi évolutives.
Il en va de même pour JSON. Si vous connaissez la structure JSON à l'avance, utiliser JSON pour le transfert de données est tout simplement merveilleux. Vous pouvez écrire du code très pratique, beau et lisible. Si vous êtes un pur développeur front-end, vous aimerez certainement beaucoup JSON. Mais si vous êtes un développeur d'applications, vous ne l'aimez pas tellement. Après tout, XML est le véritable langage de balisage structuré, utilisé pour le transfert de données.
Et si vous ne connaissez pas la structure de JSON et n'analysez pas JSON, ce serait un cauchemar. Non seulement cela prend du temps et demande beaucoup de travail, mais le code deviendra également redondant et long, et les résultats obtenus ne seront pas satisfaisants. Mais cela n’affecte pas de nombreux développeurs front-end qui choisissent JSON. Parce que toJSONString() dans json.js peut voir la structure de chaîne de JSON. Bien sûr, ne pas utiliser cette chaîne, ce qui reste un cauchemar. Une fois que les personnes qui utilisent souvent JSON auront vu cette chaîne, elles auront une compréhension claire de la structure de JSON et il sera plus facile d'utiliser JSON.
Ce qui précède est l'analyse de XML et JSON uniquement pour la transmission de données en Javascript. Dans le domaine de Javascript, JSON est après tout le domaine d'origine, et ses avantages sont bien sûr bien supérieurs à ceux de XML. Si les objets composites Javascript sont stockés dans JSON et que leur structure n'est pas connue, je pense que de nombreux programmeurs pleureront également lors de l'analyse de JSON.
◆Exemple de comparaison
XML et JSON utilisent des méthodes structurées pour marquer les données. Faisons une comparaison simple ci-dessous.
Utilisez XML pour représenter certaines provinces et villes de Chine comme suit :

<?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 présente des avantages évidents en termes de lisibilité de l'encodage. 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, ce qui est plus déroutant à lire. Cependant, la langue qui nous est difficile à lire est adaptée à la lecture automatique, donc la valeur de « Heilongjiang » peut être lue via l'index json .province[0].name. Concernant la difficulté d'écriture manuscrite du codage, XML est encore 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!

Déclaration:
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