====== 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**
Epique
Aventure
Moyen âge
Epee
Game of Thrones
**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:**
{
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.
John
Smith
22
21 2nd Street
New York
212 555-1234
646 555-4567