web-dev-qa-db-ja.com

JSONポリフィル:JSON2またはJSON3?

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

20
Christophe

HTML5お願いします JSONページを更新してJSON 3をメインのポリフィルとして使用し、JSON2は後部座席を使用します古い代替品。

12
Jensen Ching

私は同じことを考えていました。 JSON3によると

JSON2からの変更

JSON 3 .. ..

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

JSON 2とは対照的に、JSON 3はしません...

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

bestiejs.github.com/json3/

HTML5言ってください

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

JSON 2 は、ダグラス・クロックフォードによる古い代替ポリフィルです。

13
sam

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

一例:

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

5
Jelling