Partager via


JSON (JavaScript Object Notation)

Json (JavaScript Object Notation) est un format d’échange de données simple et léger basé sur un sous-ensemble de la notation littérale d’objet du langage JavaScript. Le moteur JavaScript dans Windows Internet Explorer 8 implémente la proposition JSON ECMAScript 3.1 pour les fonctions de gestion JSON natives (qui utilise l’API json2.js de Douglas Crockford).

Internet Explorer 8 inclut un objet JSON natif conforme à la prise en charge JSON décrite dans le brouillon de travail de la proposition ES3.1. Certaines pages web détectent l’objet JSON natif, puis l’utilisent de manière non standard. Cette utilisation provoque généralement une erreur de script et interrompt la gestion des requêtes AJAX. L’exemple de code suivant montre la mauvaise façon d’utiliser l’objet JSON.

    if(!window.JSON) JSON = myJSON; 
    JSON.encode(obj); // Not part of the standard

Au lieu de cela, l’exemple de code suivant montre un bon moyen d’utiliser l’objet JSON.

    JSON = myJSON; 
    JSON.encode(obj);

Windows Internet Explorer inclut la prise en charge native de JSON en introduisant un objet JSON global qui a deux méthodes intégrées : stringify et analyse. L’objet JSON global est défini dans le moteur JavaScript et est créé pendant la phase d’initialisation du moteur. Pour maintenir la compatibilité descendante, cette fonctionnalité est disponible uniquement lorsqu’un site web utilise la dernière version des fonctionnalités JavaScript à l’aide du mode de disposition (document) « Internet Explorer 8 Standards ». Cette fonctionnalité peut également affecter le comportement des pages web qui dépendent d’une variable globale JSON ou utilisent json2.js.

Vous pouvez remplacer l’objet JSON global. Toutefois, lorsqu’une page web utilise le mode de mise en page « Internet Explorer 8 Standards » (document), il ne s’agit plus d’un objet non défini. Étant donné que JSON est instancié en tant que nom global par le moteur JavaScript, vérifie comme « if(!this). JSON) » prend la valeur False et doit être modifié dans le code utilisateur.

Les pages web qui utilisent json2.js ne sont probablement pas affectées. À quelques exceptions près, ces pages devraient fonctionner plus rapidement. Les exceptions sont dues aux différences entre l’implémentation JSON native d’Internet Explorer et json2.js. Par exemple, pendant la sérialisation, l’implémentation JSON native détecte les cycles et ne passe pas en récursivité infinie comme json.js. Pour plus d’informations sur ces exceptions, consultez les blogs JavaScript.

Pour plus d’informations, consultez Documentation JSON et gestion des versions et Prise en charge des versions du moteur JavaScript.

Résolution des problèmes de compatibilité dans les applications web à l’aide de l’affichage de compatibilité