JSON face à XML : complémentaires ou concurrentiels ?

JSON (JavaScript Object Notation) est un format de structure de données générique, au même titre que XML. Sont-ils pour autant à confronter ?

Si d’aucuns pensaient que le débat était enterré – XML étant devenu au fil des années le standard incontournable de l’échange de données – un nouveau venu vient semer le doute dans les esprits.

Plus compact que XML et tout aussi intuitif

Nouveau venu, mais – à l’image d’AJAX – basé sur des standards anciens, JSON propose une structuration simple des données :

{« menu »: {

 "id": "file",  "value": "File",  "popup": {    "menuitem": [      {"value": "New", "onclick": "CreateNewDoc()"},      {"value": "Open", "onclick": "OpenDoc()"},      {"value": "Close", "onclick": "CloseDoc()"}    ]  }

}}

pour comparaison, son équivalent en XML :

<menu id= »file » value= »File »>

 <popup>    <menuitem value="New" onclick="CreateNewDoc()" />    <menuitem value="Open" onclick="OpenDoc()" />    <menuitem value="Close" onclick="CloseDoc()" />  </popup>

</menu>

Le débat

JSON a été vécu comme un cheval de troie pour les adeptes de XML. Certains parlent de retour en arrière ou encore de nivellement par le bas (pas de déclaration de jeu de caractère, ce dernier devant être connu à priori par exemple).

Effectivement, JSON est une structuration très simple, et n’est pas destiné à représenter des structures complexes fortement imbriquées. Il est plus difficilement interopérable, faisant abstraction des problématique de jeu de caractères et n’est donc pas destiné aux applications web ouvertes.

Ces limites définissent un cadre d’utilisation de JSON local, permettant des échanges moins lourd, plus rapidement codés, entre des entités connues à priori (par exemple, des modules d’une même application). XML garde sa superbe pour les échanges vers le reste du monde.

Ressources

Le site officiel de JSON décrit très simplement le formalisme. Pour les anglophones, cet article fait un point détaillé sur l’opposition entre JSON et XML.