Maison  >  Article  >  développement back-end  >  Explication détaillée JSON et XML de leurs différences

Explication détaillée JSON et XML de leurs différences

黄舟
黄舟original
2017-03-17 17:04:501454parcourir

[Note de l'éditeur] L'auteur de cet article, Yegor Bugayenko, est le co-fondateur de Teamed.io et a des recherches approfondies dans les domaines de la qualité des logiciels et des méthodes de gestion de l'ingénierie. Dans cet article, l'auteur explique plus en détail les quatre fonctionnalités principales de XML en comparant JSON pour vous aider à choisir le type de format de données approprié lors de la construction d'un projet.

Beaucoup de gens sont empêtrés dans leur cœur, si l'on compare JSON et XML, qui est le meilleur et qui est le plus rapide ? Lequel devriez-vous choisir pour votre prochain nouveau projet ? Ne soyez pas stupide ! Il n'y a absolument aucune comparaison. Comme la moto et l'AMG S65, pouvez-vous dire laquelle est la meilleure ? Bien que les deux soient des moyens de transport, dans certains cas, les vélos sont plus pratiques. Il en va de même pour JSON et XML. Ils ont tous deux leurs propres mérites et il n'est pas du tout nécessaire de les comparer.

Ce qui suit est une simple donnée JSON (140 caractères) :

{
  "id": 123,
  "title": "Object Thinking",
  "author": "David West",
  "published": {
    "by": "Microsoft Press",
    "year": 2004
  }
}

Les mêmes données seront représentées en XML comme suit (167 caractères) :

<?xml version="1.0"?>
<book id="123">
  <title>Object Thinking</title>
  <author>David West</author>
  <published>
    <by>Microsoft Press</by>
    <year>2004</year>
  </published>
</book>

Il est facile de voir la différence. Le premier est plus simple et plus facile à comprendre, et peut être parfaitement analysé en JavaScript. Alors, pouvons-nous simplement abandonner XML et choisir JSON ? Qui a besoin d’un langage poids lourd de 15 ans ?

Mais au contraire, j'aime beaucoup XML, et permettez-moi de le détailler ci-dessous.

Mais ne vous méprenez pas, cet article n'est pas contre JSON. JSON est en effet un excellent format de données, mais ce n'est qu'un format de données qui est souvent utilisé de manière ponctuelle pour obtenir des données d'un point A à un point B. C'est plus court et plus lisible que XML, mais c'est tout.

XML est un langage très puissant, pas seulement un simple format de données. Comparé à JSON et à d'autres formats de données simples, tels que YAML, XML présente au moins les quatre caractéristiques importantes suivantes.

Attributs et espaces de noms

  • Des métadonnées peuvent être ajoutées aux données XML, tout comme l'attribut id ci-dessus. Les données sont conservées dans des éléments, tels que le nom de l'auteur d'un livre, et les métadonnées (les données des données) doivent être conservées sous forme d'attributs, ce qui facilite grandement l'organisation et la structuration des informations. Plus important encore, les éléments et les attributs peuvent être marqués comme appartenant à un espace de noms, ce qui est particulièrement utile lorsque plusieurs applications utilisent le même document XML.

Schéma XML

  • Imaginez cette situation, lorsque vous créez un document XML sur une machine, des modifications ont été apportées plusieurs fois sur d'autres ordinateurs, puis transférés sur d'autres ordinateurs pour être utilisés, il était donc nécessaire de s'assurer que la structure du document n'était pas détruite par des opérations intermédiaires. Par exemple, une personne peut utiliser 9d23a6a3b3e87b7090c74d6fb6b9df28 pour enregistrer la date de publication, mais une autre personne peut utiliser 1d78a9a384cca7aba89b0d5f2a964e41 au format ISO-8601. Afin d'éviter une telle confusion structurelle, nous pouvons créer un schéma XML de document de description et l'enregistrer avec le document principal. Avant chaque opération sur le document principal, son exactitude doit être vérifiée via le fichier schéma. Il s'agit d'une sorte de test d'intégration pendant le processus de production. RelaxNG a un mécanisme similaire, mais il est beaucoup plus simple. Si vous pensez que le schéma XML est trop compliqué, vous pouvez essayer d'utiliser RelaxNG.

XSL

  • En fait, la modification des documents XML peut être effectuée sans aucun code Java/Ruby. En termes simples, il vous suffit de créer un document de transformation XSL, de l'appliquer au XML d'origine et d'obtenir un nouveau XML. Le langage XSL (Purely Functional Language) est conçu pour la manipulation hiérarchique de données et est mieux adapté à cette tâche que Java ou tout autre langage orienté objet/procédural. Avec XSL, vous pouvez transformer XML sous n'importe quelle forme, y compris du texte brut et du HTML. Beaucoup de gens se plaignent que XSL est trop compliqué, mais ce n'est pas si difficile. Les fonctions principales de XSL sont en fait très simples, alors autant l'essayer. Ce qui précède ne représente pas toutes les fonctionnalités de XML, mais ces quatre fonctionnalités sont en effet très utiles. Non seulement ils peuvent rendre le document "autosuffisant", ils peuvent également effectuer une auto-validation (XML Schema), puis savoir comment le modifier (XSL), et enfin ils peuvent obtenir facilement le contenu du document (Xpath).

    Dans le même temps, il existe de nombreux langages, normes et applications basés sur XML sur le marché, notamment Xforms, SVG, MathML, RDF, OWL, WSDL, etc. Mais ils ne sont pas utilisés dans les projets généraux car ils sont trop ciblés.

    Le but de la conception de JSON n'est pas de répondre aux caractéristiques ci-dessus. Bien que le champ JSON fasse maintenant de gros efforts, y compris JSONPath pour la requête, certains outils de conversion et json-schema pour la validation, par rapport au puissant XML, cela C'est juste une imitation triviale. Je ne pense pas qu'elle aura un développement à long terme, et elle disparaîtra tôt ou tard.

    Pour résumer, JSON est un format de données simple sans trop de fonctions supplémentaires. Son meilleur cas d'utilisation est sous AJAX. Sinon, je recommande fortement à tout le monde d'utiliser XML.

    OneAPM vous fournit des solutions de performance des applications Java de bout en bout. Nous prenons en charge tous les frameworks et serveurs d'applications Java courants, vous aidant à découvrir rapidement les goulots d'étranglement du système et à localiser la cause première des anomalies. Déployez en quelques minutes et faites-en l'expérience instantanément, la surveillance Java n'a jamais été aussi simple. Pour lire plus d’articles techniques, veuillez visiter le blog technique officiel de OneAPM.

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