Quels sont les avantages et les inconvénients de json vs xml pour les requêtes ajax?
Quels sont les avantages et les inconvénients de json vs xml pour les requêtes ajax?
Est-il une différence de performance? c'est à dire navigateurs sont capables de traiter un format plus vite que les autres?
source d'informationauteur flybywire
Vous devez vous connecter pour publier un commentaire.
En résumé, JSON (qui peut être pensé à un sous-ensemble de JavaScript) est beaucoup plus maigre que XML. Ce qui a plusieurs effets secondaires positifs
->
faciliter l'analyse (plus rapide analyse syntaxique)Originale dans ma réponse à cette question, de mon point de vue de JSON est que du JavaScript, je le considère comme un proche parent. Mais JSON est quelque chose d'indépendant et JSON.org fait un excellent travail de description de JSON. Il fournit également une bibliothèque de compatibilité pour JavaScript qui ajoute le support pour
JSON.parse
etJSON.stringify
lorsqu'il n'est pas pris en charge par les navigateurs.Tout
eval
à l'époque (mi-2009) a été utilisé pour évaluer JavaScript, il pourrait également évaluer JSON, c'est à dire analyser JSON, mais il était considéré comme dangereux, comme il l'a fait de permettre arbitraire JavaScript à exécuter à sa place.JSON se trouve être un très bon ajustement pour les navigateurs et un moyen naturel de faire évoluer la plateforme en raison de son étroite relation avec JavaScript.
Alors que XML peut être considéré comme ayant une meilleure rigueur en raison du fait que vous pouvez le taper, c'est aussi ces choses qui font qu'il est beaucoup plus lent (c'est aussi un peu verbeux à mon avis). Mais si c'est quelque chose que vous voulez vraiment, vous devriez l'utiliser, XML est également omniprésents.
Je n'entrerai pas dans un débat sur la dynamique ou statiquement typé, mais je dirai ceci. Il est vraiment facile d'ajouter des trucs sur le dessus de schéma de données libres et il y a beaucoup de façons de faire de la validation, indépendamment de schéma ou d'aucun schéma.
Un avantage de XML que je nai pas vu jusqu'à présent dans la discussion, c'est que le XML schéma. C'est d'une grande valeur dans la description de la structure du XML. Pour la simple structure de données JSON et un peu de texte décrivant ce que vous faites est bien. Lorsque vous travaillez avec plus de structures de données complexes, ou lorsque le créateur et le consommateur des données ne sont pas la même équipe, avoir un Schéma peut aider à la communication beaucoup.
Aussi, pour avoir un schéma signifie que vous pouvez valider vos données, qui peut sauver la vie lorsque vous essayez de déboguer le complexe d'erreurs ...
Que vous avez dans cet article "L'AJAX réponse: XML, HTML, ou JSON?" un grand débat sur ce sujet:
XML
L'avantage le plus important de XML est qu'il est le plus facilement format lisible pour les autres humains.
Un avantage secondaire est que le XML a été autour depuis un certain temps et que beaucoup de développeurs sont déjà habitués.
Le code JavaScript nécessaire pour insérer les données dans le code HTML de la page est très longue.
JSON
L'avantage le plus important est que JSON contourne le JavaScript de la même source de la politique, si vous importez le fichier JSON comme un nouveau
<script>
tag. Voir Simon Willison, l'exemple de pour les détails sanglants.JavaScript ne vous permet pas d'accéder à des documents (XML ou HTML) qui viennent d'un autre serveur. Toutefois, si vous importez un fichier JSON comme une balise de script, vous contourner ce problème, et toutes les données JSON peuvent être importés dans un site web. Cela dépend de vos objectifs d'affaires si c'est une Bonne ou une Mauvaise Chose, mais pour l'instant c'est le seul format de données qui permet l'accès sans restriction.
Un avantage secondaire est que les scripts de données JSON sont un peu plus simple et un peu plus en ligne avec le reste de l'JavaScript langage de scripts pour les données XML.
L'inconvénient le plus important de JSON, c'est que le format est très difficile à lire pour les humains, et que, bien sûr, chaque virgule, devis, et le support doit être exactement au bon endroit. Même si cela est également vrai de XML, JSON est welter de l'air compliqué syntaxe, comme l' }}]} à la fin des données extrait, peut effrayer les débutants et de faire compliqué pour le débogage.
Les commentaires, JSON est considéré comme plus rapide que XML.
Un avantage de XML qui n'a pas encore été mentionnés, c'est qu'il est possible d'utiliser XSLT pour extraire des données à partir d'un document XML à l'aide arbitrairement complexes, des expressions XPath. Je ne vois pas le moyen de le faire en JSON. Comment voulez-vous trouver tous les objets dans un document JSON qui contient un champ "devise" comme un descendant direct, indépendamment du lieu où les objets se produisent dans la structure? En XML avec XSLT/XPath, c'est très facile.
Cependant, cela dans le navigateur vient à un prix. Vous allez courir dans un navigateur spécifique bizarreries, et il sera probablement plus lent et plus gourmande en mémoire.
Alors que j'aime Json et le recommande, je pense qu'il n'y a pas de différence fondamentale entre optimale de la vitesse de traitement. Les différences entre les bibliothèques et les plates-formes sont de plus en plus significative: un bon analyseur xml est plus rapide que de mauvais parser json et vice versa. Donc, habituellement, la performance de formats eux-mêmes n'est pas un facteur important.
Les deux peuvent être rapide comme l'éclair (Java a quelques bons analyseurs pour les deux, par exemple, d'autres langues sont probablement trop).
De compacité, qui dépend du type de données Json est souvent un peu plus compact, mais pas radicalement. Sauf si vous avez beaucoup de tableaux/listes, où la notation json "{ ... }" est beaucoup plus compact que les balises xml (sauf si vous utilisez les espaces, si possible, à l'instar de "1 2 3 4").
Le lien dirkgently possède un bon résumé des différences (faites défiler vers le bas). Les points importants sont:
JSON: plus petit, peut représenter tous les caractères unicode (xml ne peut pas en UTF8, au moins, par ses propres spec). Il est aussi trivial d'en faire l'usage dans les applications AJAX (en raison de javascript de la fonction eval ()), en particulier plus de fonctionnalités avancées comme jsonp (réponses invoquer les rappels).
XML: A beaucoup d'outils pour faire de l'interrogation de sa structure facile. Depuis ses plus anciennes et les mieux établies, il a également plus d'outil de soutien en général.
En général, ils peuvent accomplir les mêmes choses (vous pourriez faire jsonp via xml, il aurait juste besoin d'manuellement l'analyse porte sur le rappel).
Vous voudrez peut-être lire JSON: La Graisse sans Alternative à XML. Avec JSON, vous pouvez tromper avec des rappels et-vient entre la source et la destination d'une requête et l'utiliser sans douleur dans votre code Javascript.
je pense qu'un autre avantage de Json, c'est qu'il n'utilise pas de <> les crochets et vous pouvez mettre du code html dans les il sans beaucoup de confusion.
JSON est légerAJAX amical (considéré comme sous-ensemble de Javascript) et facilement serializable.
XML faire tout cela, mais après avoir bu un peu de lait.