Comparaison JSON/XML
Avantages
Un format léger
Le JSON est peu “verbeux”, et peut prendre bien moins de place que XML pour représenter un jeu de données équivalent.
Cela assure par exemple une réception plus rapide d'un large jeu de données JSON lorsque l'on fait appel à un web service que si les données étaient au format XML.
Exemple: JSON vs XML
XML
<book> <meta> <keywords> <keyword>Epique</keyword> <keyword>Aventure</keyword> <keyword>Moyen âge</keyword> <keyword>Epee</keyword> </keywords> </meta> <title>Game of Thrones</title> </book>
JSON
{ "book": { "meta": { "keywords": ["Epique", "Aventure", "Moyen âge", "Epee"] }, "title": "Game of Thrones" } }
Attention:JSON n'est pas plus compact dans tous les cas
Un fichier JSON n'est pas forcément plus court que son équivalent XML, notamment dans le cas d'utilisation d'attributs en XML.
Voir : http://json.org/example.html
Exemple:
<item voiture="aa" marque="bb" prix="cc" /> <item voiture="aa1" marque="bb1" prix="cc1" /> <item voiture="aa2" marque="bb2" prix="cc2" />
{ items: [ { "voiture":"aa", "marque":"bb", "prix":"cc", }, { "voiture":"aa1", "marque":"bb1", "prix":"cc1", }, { "voiture":"aa2", "marque":"bb2", "prix":"cc2", }, ], }
Syntaxe orientée objet
La syntaxe orientée objet de JSON permet aux langages qui le parsent de facilement créer des objets représentant l'objet JSON reçu dans le langage courant.
Cela assure une exécution rapide d'un programme qui se sert d'un tel format.
Limites
Schémas et langages XML
JSON ne dispose pas du système de schémas de XML, utilisés afin de valider des fichiers XML devant respecter une certaine structure. Cela complexifie la validation de fichiers JSON massifs qui pourraient éventuellement contenir des erreurs (nom d'un attribut mal orthographié, attribut manquant mais nécessaire, etc…).
Par ailleurs, il existe bien moins de langages JSON que de langages XML (SVG, ODT…). On peut supposer que cela est en partie du à l'absence d'un système de schémas.
Rédaction de documents
Les langages à balises tels que XML sont particulièrement adaptés à la rédaction de documents, notamment afin de gérer efficacement la récursivité des balises.
JSON n'est pas adapté à une telle utilisation, mais bien plus à la représentation de données.
Système de traitement
JSON ne dispose pas d'un système de traitement équivalent à XSLT, pour transformer des données et les exporter sous différents formats.
CONCLUSION
On peut donc conclure que le choix de l'un ou l'autre langage dépend du cas d'utilisation :
- JSON est plus adapté pour le partage de données formatées, mais est limité dans les types de données possibles.
- XML est plus adapté pour la création de documents, et permet de stocker n'importe quel type de données, ce qui le rend plus flexible, mais potentiellement moins lisible.
Exercice
Voici un fichier XML décrivant une personne et ses coordonnées. Transformez cette structure en écrivant son équivalent au format JSON, faites les adaptations et développements nécessaires.
<?xml version="1.0" encoding="UTF-8" ?> <person> <firstName>John</firstName> <lastName>Smith</lastName> <age>22</age> <address> <streetAddress>21 2nd Street</streetAddress> <city>New York</city> <state postalCode="10021" name="NY"/> </address> <phoneNumber type="home"> 212 555-1234 </phoneNumber> <phoneNumber type="fax"> 646 555-4567 </phoneNumber> </person>