Du point de vue du temps de traitement, évaluer une expression JSON en JavaScript est à peu de choses près aussi efficace que traiter son équivalent XML.
Du point de vue de la taille (stockage, vitesse de transmission…), une expression JSON est légèrement moins volumineuse ; la différence n’est cependant sensible que sur de gros volumes, ce qui est rarement le cas pour un usage courant.
En JavaScript, il est simple d’évaluer une expression JSON pour la transformer en objet natif :
var donnees = eval('('+donnees_json+')');
Cette méthode comporte toutefois des risques car la chaîne de caractères donnees_json
peut contenir n’importe quel code JavaScript. Il existe une méthode plus sûre qui consiste à parser la chaîne de caractères donnees_json
, seule solution disponible dans les autres langages de programmation, à l’exception de Python, la syntaxe de JSON correspondant à ses deux types principaux : les listes et les dictionnaires.
Les navigateurs commencent (en 2009) à intégrer un support natif du format JSON, ce qui facilite sa manipulation, la sécurité (contre l’évaluation de scripts malveillants inclus dans une chaine JSON), et la rapidité de traitement. Ainsi les navigateurs Firefox 3.5 , IE 8 ou encore Opera 10.5 l’intègrent en natif.
Évaluer en JavaScript une expression JSON pour la transformer en objet se fait alors de la manière suivante :
var donnees = JSON.parse(donnees_json); // Ou version multi-navigateurs: var donnees2 = typeof JSON !='undefined' ? JSON.parse(donnees_json) : eval('('+donnees_json+')');