J'utilise JSON.Stringify
et JSON.parse
partout et cela fonctionne bien avec Firefox. Cela ne fonctionne plus avec IE9 ni avec IE8. Que puis-je faire?
pourquoi voulez-vous que le navigateur ait l’objet au lieu d’inclure le fichier script de Douglas Crockford? Vous pouvez trouver le fichier minifed ici: http://www.json.org/js.html
Une fois importé, vous n'avez pas à vous soucier de la méthode existante dans un navigateur.
JSON.stringify
commence par une s
minuscule. stringify
et parse
sont tous deux disponible dans IE8 + , mais uniquement en mode standard.
Faites précéder votre document avec <!DOCTYPE html>
si vous utilisez actuellement le mode quirks. Observez également la mise en majuscule des méthodes JavaScript que vous appelez - toutes les méthodes intégrées commencent par un caractère minuscule.
Pour une alternative, dans un scénario où vous pourriez avoir besoin de fonctionner en mode strict pour une raison quelconque (j'ai une autre bibliothèque qui inclut "use strict"), vous pouvez chercher ici: https://github.com/douglascrockford/JSON -js . J'ai modifié ceci pour vérifier d'abord si JSON est indéfini, et ne générer la fonction JSON.parse que si:
if (typeof JSON === "undefined") {
var JSON = {
parse: <insert value of json_parse from library here>
};
}
Mon problème était que le code d'application ne fonctionnait pas dans IE9 (le mode strict étant utilisé par une bibliothèque participante, je crois). Cela a résolu le problème pour moi.
le simple problème est que l'envoi d'en-têtes UTF-8 invalidera le JSON (IE n'a pas/n'a pas aimé cela). comme le problème est décrit, cela pourrait toujours s'appliquer à IE9 ... une fois écrit un comment , il y a quelques années. L'ajout de la prise en charge JSON à un navigateur capable d'analyser le JSON natif n'est probablement pas la solution optimale, car il génère une surcharge inutile - uniquement parce que le JSON n'a pas été livré au format attendu.