JSON ou XML, quel format choisir?
Par cette comparaison de JSON et XML, nous allons tenter, en mettant en lumière les forces et faiblesses de chaque format, de vous aider à choisir celui qui convient le mieux pour une application donnée, et plus spécialement pour une application Ajax.
JSON
JSON est un format récursif compatible avec JavaScript qui qui en fait a la structure d'un objet JavaScript. C'est un objet sauvegardé dans un fichier. Il date de 2002 et soudain est devenu populaire lorsqu'Ajax à commencé à être largement utilisé.
JavaScript
Pour utiliser un fichier JSON, il vous faut juste charger le fichier en tant
que texte, c'est le contenu de l'attribut Ajax responseText.
Ensuite vous sous servez de la fonction JavaScript eval() pour en faire un
objet JavaScript:
var doc = xhr.responseText;
var jdoc = eval('(' + doc + ')');
Une fois le fichier parsé, il s'utilise comme tout objet JavaScript:
var value = jdoc.commands[0].value; var action = jdoc.commands[0].action;De nombreux scripts sont disponibles sur le Web pour sérialiser un objet JavaScript en fichier JSON. Il y en a un sur le site de l'auteur (voir ressources).
PHP
Vous pouvez utiliser JSON en PHP une fois le fichier parsé avec un
parseur PHP. Voir en ressource pour un tel outil.
Il existe une bibliothèque JSON pour PHP, il suffit de configurer php.ini
pour l'utiliser. Il y a aussi une bibliothèque json.php à inclure
directement avec la fonction "require".
Service Web
Le framework JSON Web Service library est très populaire. Il est même reconnu par la nouvelle machine virtuelle Silverlight.
Transformations
La transformation d'un format à l'autre peut être accomplie en sérialisant l'objet en mémoire dans un nouveau format.
Avantages
JSON est très facile à utiliser en JavaScript, il fait partie du langage.
Inconvénients
JSON présuppose que vous connaissiez la structure du document. Lorsqu'on l'utilise avec tout langage de programmation, on accède aux données selon la structure d'un objet.
XML
XML est un langage à balises qui la base de nombreux formats: RSS,
RDF, OPML, XHTML, Open XML, etc. Il permet de décrire et analyser tout
sorte de document, sauf binaires, et de les conserver dans un fichier.
Il est plus verbeux que JSON, mais une quantité d'outils existent pour
le traiter, et c'est aussi le format de fichier de traitements de texte et
autres logiciels de bureau.
JavaScript
Au contraire de JSON, le fichier est chargé en Ajax directement comme
document XML, c'est l'attribut responseXML d'Ajax.
Puis le contenu peut être accédé par les méthodes
de DOM.
var xdoc = xhr.responseXML;
var x = xdoc.getElementById("mabalise");
PHP
XML fait partie du langage de base PHP 5, il y est utilisé directement avec les classes DOMDocument et SimpleXML. On peut charger un fichier XML, traiter le contenu avec les méthodes de DOM et le sauver directement dans un fichier.
Service Web
Il y a un format XML pour les services Web: SOAP. C'est une standard du W3C, mais plutôt compliqué et pas très populaire.
Transformations
La transformation d'un document XML en un autre format peut être accomplie par XSLT, un outil d'un usage pas très simple. Bien sûr, on peut aussi en PHP ou JavaScript, charger le fichier XML, prendre les données, et construire un fichier dans le nouveau format, quelquefois c'est plus facile.
Avantages et inconvénients
La structure de XML est libre. Tout contenu textuel se représente en XML et on y accède par l'identifieur ou le nom de balise.
L'utilisation des méthodes de DOM est quelquefois laborieux.
Le format est verbeux et prend beaucoup d'espace.
Conclusion
JSON est plus simple pour prendre des données sur le serveur, et s'en servir, c'est comme la mémoire d'un programme. Il vous faut connaître la structure des données pour l'utiliser, de préférence vous devez être le propriétaire du fichier. Il est plus léger que XML et économise les ressources.
XML convient mieux dans un but de présentation. C'est le langage de
toutes les interfaces graphique maintenant: XAML, XUL, MXMW, etc. Dans ce
cas, les données sont stockées sous une forme et utilisées
sous une autre.
Vous pouvez utiliser XML en provenance de sources externes. La combinaison
de XML et XPath permet de l'utiliser comme base de données, il convient
donc pour des ressources de taille importante.
Exemples
Exemple de fichier JSON
[ {
"menu": "File",
"commands": [
{
"value": "New",
"action":"CreateDoc"
},
{
"value": "Open",
"action": "OpenDoc"
},
{
"value": "Close",
"action": "CloseDoc"
} ]
} ]
Exemple de fichier XML
<?xml version="1.0" ?>
<menubar>
<menu name="File">
<command value="New" action="CreateDoc" />
<command value="Open" action="OpenDoc" />
<command value="Close" action="CloseDoc" />
</menu>
</menubar>
C'est en fait une forme compacte, pour réfléter précisémment l'objet, il faudrait plutôt écrire:
<command>
<value>
New
</value>
<action>
CreateDoc
</action>
</command>
Ressources
- json.org. Site de l'auteur.
- ECMAScript. Spécification du standard de 1999.
- Tutoriel JSON.
|
|
|
