Table des matières

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 :

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>