JSON polyfill: JSON 2 или JSON 3?

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

3 ответов


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


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

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

JSON 3...

  • правильно сериализует примитивные объекты-обертки (выпуск #28).
  • бросает!--0--> при сериализации циклических структур (в формате 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. Это drop-in замена для в формате JSON 2 который использует функцию тесты обнаружение сломанных и неполных собственных реализаций JSON, поддержка асинхронные загрузчики модуль и has-aware оптимизаторы, и построен к стандартам спецификации.

в формате JSON 2 - это старый, альтернатива полифилл Дугласа Крокфорда.


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

пример:

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