web-dev-qa-db-fra.com

JSON sur IE6 (IE7)

Désolé pour mon hospitalisation, mais après des semaines à rester tard et à avoir mis mon site Web en ligne, je n'ai tout simplement plus d'énergie pour déboguer ... Je ne peux tout simplement pas Google comment implémenter JSON sur IE6 et IE7 ... I utilise

JSON.stringify(...)

D'après ce que je comprends, JSON n'est pas intégré à IE6-7 et doit être ajouté dynamiquement dans le code en ligne ... comment faire?

J'ai déjà jQuery - est-ce que je comprends bien que leur moteur JSON repose sur le navigateur natif?

Ensuite, quelques commentaires sur le code JSON invalide qui fait échouer IE6-7, mais je pensais qu'il n'était pas natif dans IE6-7?

N'importe qui?

77
David Thorisson

Puisque vous souhaitez utiliser le JSON.stringify, vous devrez inclure le analyseur JSON afin de le prendre en charge sur IE <8.

Cette bibliothèque est conforme aux méthodes standard de la spécification ECMAScript 5ème édition et vérifie si une implémentation native est disponible, donc sur un navigateur moderne cette implémentation native sera utilisée.

105
CMS

Il doit y avoir quelque chose de mal compris. La notation d'objet est en JavaScript depuis un certain temps maintenant (pour autant que je sache, c'est un concept de base de JavaScript). Je veux dire, la possibilité d'écrire du code comme var o= {a:"b"};
Donc, si vous pouvez le faire, vous pouvez également appeler eval('var o= {a:"b"};') et c'est ainsi que vous "implémentez JSON" dans n'importe quel navigateur.

MISE À JOUR: Relisez votre message et avez finalement compris que le problème est la sérialisation des objets, pas leur désérialisation. Ensuite, vous pouvez utiliser la bibliothèque JavaScript pour cela: https://github.com/douglascrockford/JSON-js/blob/master/json2.js

2
naivists

Incluez simplement json2.js dans votre fichier pour jouer avec JSON. Cela fonctionnera également dans IE 9.

2
Padhu

"code en ligne ajouté dynamiquement" utilise la fonctionnalité fournie par la bibliothèque json2 de Douglas Crockfords, ou la propre implémentation de jQuery si la version du navigateur ne la prend pas en charge de manière native.

jQuery ne s'appuie sur aucune fonctionnalité de décodage JSON fournie par le navigateur. Si le navigateur prend en charge le décodage JSON, jQuery l'utilisera.

1
Matt