PRATIQUE CLIENTS WEB 
JSON : un format de retour alternatif pour Ajax
 
Ce nouveau format proche de JavaScript pourrait devenir un concurrent sérieux dans le cadre des échanges de données Web. Présentation et explication. (20/04/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

La méthode de développement Ajax met particulièrement en avant l'utilisation de XML pour l'échange de données - et pour cause, le format étant inscrit directement dans l'acronyme (Asynchronous Javascript and XML). Pour autant, si la méthode XMLHttpRequest est de plus en plus utilisée, XML n'est pas forcément le format d'échange par défaut. Les développeurs utilisent plus fréquemment des simples chaînes, du HTML, ou pour les plus avancés un nouveau format, JSON.

Popularisé par Douglas Crockford, JSON (pour JavaScript Object Notation) est un format d'échange visant à offrir une alternative à XML jouant sur la simplicité. JSON est conçu à partir d'un sous-ensemble de JavaScript (les Object Notations font partie de la spécification ECMA Script depuis 1999), comprenant sa syntaxe d'usage des chaînes des tableaux et des objets. Yahoo le propose parmi ses formats de retour depuis décembre 2005, et le service del.icio.us le propose également.

JSON se base sur deux structures générales : les collections de paires nom/valeur, et les listes ordonnées de valeurs. Plus spécifiquement JSON autorise l'utilisation de trois formes : objets, tableaux et valeurs. La syntaxe les définit respectivement ainsi :
- objet : { nom:valeur, nom:valeur ... }
- tableau : [ valeur, valeur, valeur ... ]
- valeur : "le texte", 127, true, null

Ainsi, on pourra comparer les codes XML et JSON équivalents :

<message id="msg01">
  <entete>
    <auteur value="Lapin" />
    <date value="2005-05-05 />
    <importanceHaute value="true" />
  </entete>
</message>


{ "message": {
  "entete": {
    "auteur": "Lapin",
    "date": "2005-05-05",
    "importanceHaute": true
    }
  }
}


On ne perd donc rien en expressivité, et les tests actuels montrent un gain significatif en vitesse de traitement pour JSON. Par ailleurs, étant par ses racines du JavaScript valide, les données JSON peuvent être directement traitées par JavaScript, via la fonction eval() :

monObjet = eval('(' + donnees_json + ')');
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page