IE 7 と一部の IE 8 および IE 9 モードをサポートするには、JSON ポリフィルが必要です。JSON 2またはJSON 3を選択する必要がありますか? 明らかに、JSON 3 はより最新の実装ですが、たとえばhtml5pleaseのようなサイトでは言及すらされておらず、JSON 2 を推奨しています。
16832 次
3 に答える
14
私は同じことを疑問に思っていました。JSON3 は次のように述べています。
JSON 2 からの変更点
JSON3...
- プリミティブ ラッパー オブジェクトを正しくシリアル化します (課題 #28 )。
- 循環構造をシリアライズする
TypeError
ときに a をスローします (JSON 2 は呼び出しスタックがオーバーフローするまで再帰します)。- 機能テストを利用して、壊れたまたは不完全なネイティブJSON 実装を検出します (JSON 2 はネイティブ関数の存在のみをチェックします)。テストは実行時に 1 回だけ実行されるため、値を解析またはシリアル化するときに追加のパフォーマンス コストは発生しません。
JSON 2 とは対照的に、JSON 3は...
- 、、およびプロトタイプに
toJSON()
メソッドを追加します。これらは標準の一部ではなく、実装の設計によって冗長になっています。Boolean
Number
String
stringify()
toJSON()
ortoISOString()
メソッドを に追加しDate.prototype
ます。以下の日付のシリアル化に関する注意を参照してください。
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 倍速く実行されました。
一例:
于 2013-10-25T00:44:49.957 に答える