20

IE 7 と一部の IE 8 および IE 9 モードをサポートするには、JSON ポリフィルが必要です。JSON 2またはJSON 3を選択する必要がありますか? 明らかに、JSON 3 はより最新の実装ですが、たとえばhtml5pleaseのようなサイトでは言及すらされておらず、JSON 2 を推奨しています。

4

3 に答える 3

14

私は同じことを疑問に思っていました。JSON3 は次のように述べています

JSON 2 からの変更点

JSON3...

  • プリミティブ ラッパー オブジェクトを正しくシリアル化します (課題 #28 )。
  • 循環構造をシリアライズするTypeErrorときに a をスローします (JSON 2 は呼び出しスタックがオーバーフローするまで再帰します)。
  • 機能テストを利用して、壊れたまたは不完全なネイティブJSON 実装を検出します (JSON 2 はネイティブ関数の存在のみをチェックします)。テストは実行時に 1 回だけ実行されるため、値を解析またはシリアル化するときに追加のパフォーマンス コストは発生しません。

JSON 2 とは対照的に、JSON 3...

  • 、、およびプロトタイプにtoJSON()メソッドを追加します。これらは標準の一部ではなく、実装の設計によって冗長になっています。BooleanNumberStringstringify()
  • toJSON()ortoISOString()メソッドを に追加しDate.prototypeます。以下の日付のシリアル化に関する注意を参照してください。

bestiejs.github.com/json3/

HTML5 言ってください:

JSON 3は、ほぼすべての JavaScript プラットフォームと互換性のあるポリフィルです。これは、機能テストを使用して壊れた不完全なネイティブ JSON 実装を検出し、 非同期モジュール ローダーと -aware オプティマイザをサポートし、仕様標準に基づいて構築された、JSON 2のドロップイン代替品です。has

JSON 2は Douglas Crockford による古い代替ポリフィルです。

于 2012-08-03T22:11:55.997 に答える
12

HTML5 Pleaseは、JSON ページを更新して、JSON 3をメインのポリフィルとして使用し、JSON 2 は古い代替品として後れを取っています。

于 2012-11-28T03:10:11.670 に答える
5

IE7 (および場合によっては 8) でページのパフォーマンスを向上させたい場合は、json2.js を使用します。私はjson3を何ヶ月も喜んで使用していましたが、この質問を見ていくつかの調査を行いました。すべての jsperf は、IE7 VM で json2.js を使用すると 1 ~ 2 倍速く実行されました。

一例:

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

于 2013-10-25T00:44:49.957 に答える