Accueil > Développement, JSON > JSON et navigateurs…âgés

JSON et navigateurs…âgés

Récemment, j’ai du modifier du code pour changer le format de données des échanges.

Naturellement, j’ai utilisé le format JSON.
D’abord parce que je le connais bien, ensuite par qu’il est efficace, simple à utiliser et surtout…l’objet JSON possède deux méthodes ô combien pratique : stringify et parse qui permettent, respectivement, de sérialiser et désérialiser en chaîne de caractères un objet.
Pour plus de détails, vous pouvez (entre autres) consulter ce billet : Native JSON in IE8 (EN).

Du coup, c’est bien mieux que le XML !

Côté .Net, on pourra utiliser la librairie JSON.Net (EN), aussi connue sous le nom de Newtonsoft.Json. Elle fait la même chose que son pendant en Javascript, plus quelques autres choses bien utiles.

Et puis, quelques jours plus tard, c’est le Drame (oui, oui, avec un grand D).
Le Drame, c’est que sur le poste d’un collègue, l’objet JSON n’existe pas. Il est…indéfini.
Là, je me dis « monde de merde » (enfin, j’avais d’autres termes plus imagés en tête, sur le coup, mais bon, passons).
Le problème vient du fait qu’il est en compatibilité IE7.

Et oui, comme nous apprends Wikipédia :

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.

Donc, IE7 n’est pas dedans.
Et ça, c’est moche.

Alors, comment contourner le problème et surtout, comment le tester avec un navigateur plus à jour ?

Pour régler le problème, il faut aller pêcher un Javascript qui gère le format JSON.
Et c’est donc ici que l’on peut le trouver : JSON 3 (EN).

Après, il suffit d’ajouter les quelques lignes ci-dessous dans un fichier Javascript qui est présent sur toutes les pages :

$(document).ready(function () {
    if (typeof JSON !== 'object') {
        var script = document.createElement("script");
        script["src"] = 'JS\\json2.js';
        document.getElementsByTagName("head")[0].appendChild(script);
    }
});

Et voilà, le tour est joué.

Pour tester cela, allons dans IE9, plus spécifiquement dans la console de DEBUG (touche F12).
JSON - Compatibilité IE7

Comme ça, l’objet JSON n’existe pas et il est donc possible de tester le fonctionnement sur les navigateurs…disons plus âgés que prévu.

Catégories :Développement, JSON
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :