JSON на IE6 (IE7) - PullRequest
       24

JSON на IE6 (IE7)

77 голосов
/ 23 марта 2010

Извините за мое терпение, но после нескольких недель, когда я ложился спать допоздна и просто выкладывал свой интернет, у меня просто не осталось энергии для отладки ... Я просто не могу Google, как реализовать JSON в IE6 и IE7. .. Я использую

JSON.stringify(...)

Насколько я понимаю, JSON не встроен в IE6-7 и должен динамически добавляться во встроенный код ... как это сделать?

У меня уже есть jQuery - правильно ли я понимаю, что их движок JSON основан на нативном браузере?

Затем некоторые комментарии о недопустимом коде JSON, который приводит к сбою IE6-7, но я подумал, что он не является родным в IE6-7?

Любой

Ответы [ 4 ]

105 голосов
/ 23 марта 2010

Поскольку вы хотите использовать метод JSON.stringify, вам потребуется включить JSON3-парсер , чтобы поддерживать его в IE <8. </p>

Эта библиотека соответствует стандартным методам спецификации ECMAScript 5-го издания и проверяет, доступна ли собственная реализация, поэтому в современном браузере будет использоваться эта собственная реализация.

2 голосов
/ 09 июля 2013

Просто включите json2.js в ваш файл, чтобы поиграться с JSON. Это также будет работать в IE 9.

2 голосов
/ 23 марта 2010

Должно быть что-то неправильно понято. Нотация объекта уже давно используется в JavaScript (насколько я понимаю, это основная концепция JavaScript). Я имею в виду способность писать код вроде var o= {a:"b"};
Так что, если вы можете сделать это, вы также можете вызвать eval('var o= {a:"b"};'), и именно так вы «внедрите JSON» в любом браузере.

ОБНОВЛЕНИЕ: перечитайте ваш пост и, наконец, поняли, что проблема заключается в сериализации объектов, а не в их десериализации. Тогда вы можете использовать библиотеку JavaScript для этого: https://github.com/douglascrockford/JSON-js/blob/master/json2.js

1 голос
/ 23 марта 2010

«динамически добавляемый встроенный код» использует функциональность, предоставляемую библиотекой Douglas Crockfords json2, или собственную реализацию jQuery, если версия браузера не поддерживает его изначально.

jQuery не использует функции декодирования JSON, предоставляемые браузером. Если браузер поддерживает декодирование JSON, jQuery будет использовать его.

...