Поделиться через


Нотация объектов JavaScript (JSON)

нотации объектов JavaScript (JSON) — это простой и упрощенный формат обмена данными, основанный на подмножестве нотации литерала объекта языка JavaScript. Подсистема JavaScript в Windows Internet Explorer 8 реализует предложение ECMAScript 3.1 JSON для собственных функций обработки JSON (который использует API json2.js ДугласА Крокфорда).

Internet Explorer 8 включает собственный объект JSON, который соответствует поддержке JSON, описанной в ES3.1, рабочий проект. Некоторые веб-страницы обнаруживают собственный объект JSON, а затем используют его в нестандартном режиме. Обычно это использование вызывает ошибку скрипта и нарушает обработку запросов AJAX. В следующем примере кода показан неправильный способ использования объекта JSON.

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

Вместо этого в следующем примере кода показан хороший способ использования объекта JSON.

    JSON = myJSON; 
    JSON.encode(obj);

Windows Internet Explorer включает собственные поддержку для JSON, введя глобальный объект JSON с двумя встроенными методами: stringify и синтаксический анализ. Глобальный объект JSON определяется в подсистеме JavaScript и создается во время этапа инициализации ядра. Для обеспечения обратной совместимости эта функция доступна только в том случае, если веб-сайт использует последнюю версию функций JavaScript с помощью режима макета "Стандарты Internet Explorer 8" (документ). Эта функция также может повлиять на поведение веб-страниц, зависящих от глобальной переменной JSON или использования json2.js.

Вы можете переопределить глобальный объект JSON. Но если веб-страница использует режим макета "Стандарты Internet Explorer 8" (документ), он больше не является неопределенным объектом. Так как JSON создается в качестве глобального имени подсистемой JavaScript, проверяет значение if(!this). JSON)" оценивается как false и должен быть изменен в пользовательском коде.

Веб-страницы, использующие json2.js, скорее всего, не затронуты. В некоторых исключениях эти страницы должны работать быстрее. Исключения обусловлены различиями между реализацией JSON в Internet Explorer и json2.js. Например, во время сериализации собственная реализация JSON обнаруживает циклы и не проходит бесконечное рекурсии, например json.js. Дополнительные сведения об этих исключениях см. в блогах JavaScript.

Дополнительные сведения см. в документации по JSON и поддержке версий и поддержке версий ядра JavaScript.

исправление проблем совместимости в веб-приложениях с помощью представления совместимости