Подтвердить что ты не робот

JSON polyfill: JSON 2 или JSON 3?

Мне нужен JSON polyfill для поддержки IE 7 и некоторых режимов IE 8 и IE 9. Должен ли я выбрать JSON 2 или JSON 3? Очевидно, что JSON 3 - это более современная реализация, но, например, сайт html5please не упоминает об этом и рекомендует JSON 2.

4b9b3361

Ответ 1

HTML5 Пожалуйста, обновил свою страницу JSON, чтобы включить JSON 3 в качестве основного polyfill для использования, а JSON 2 с задним сиденьем как более старая замена.

Ответ 2

Мне было интересно то же самое. JSON3 говорит:

Изменения от JSON 2

JSON 3...

  • Правильно сериализует примитивные объекты-обертки (Проблема № 28).
  • Выбрасывает TypeError при сериализации циклических структур (JSON 2 повторяется до тех пор, пока стек вызовов не переполнится).
  • Использует тесты функций для обнаружения сломанных или неполных встроенных реализаций JSON (JSON 2 проверяет наличие собственных функций). Тесты выполняются только один раз во время выполнения, поэтому при анализе или сериализации значений нет дополнительных затрат на производительность.

В отличие от JSON 2, JSON 3 не...

  • Добавьте методы toJSON() к прототипам Boolean, Number и String. Они не являются частью какого-либо стандарта и сделаны избыточными по дизайну реализации stringify().
  • Добавьте методы toJSON() или toISOString() в Date.prototype. См. Примечание о сериализации даты ниже.

bestiejs.github.com/json3/

HTML5 Пожалуйста, скажите:

JSON 3 - это polyfill совместимый с почти на всех платформах JavaScript. Это замена для JSON 2, который использует функциональные тесты для обнаруживать сломанные и неполные встроенные JSON-реализации, поддерживает асинхронные загрузчики модулей и has - оптимизировать и создать к стандартам спецификации.

JSON 2 - это более старая альтернатива polyfill Дугласом Крокфордом.

Ответ 3

Используйте json2.js, если вы хотите повысить производительность своей страницы в IE7 (и, возможно, 8). Я с удовольствием использовал json3 в течение нескольких месяцев, а затем я увидел этот вопрос и сделал некоторые исследования. Все jsperf выполняются на 1-2 раза быстрее с json2.js в моей IE7 VM.

Один пример:

http://jsperf.com/json-vs-jquery-json/2