web-dev-qa-db-ja.com

IE6(IE7)上のJSON

我慢できず申し訳ありませんが、数週間遅れてウェブをオンラインにしただけで、デバッグする余力がありません... IE6とIE7でJSONを実装する方法をGoogleで確認できません...使用しています

JSON.stringify(...)

私が理解していることから、JSONはIE6-7に組み込まれておらず、インラインコードに動的に追加する必要があります...どうすればいいですか?

私はすでにjQueryを持っています-彼らのJSONエンジンがブラウザネイティブのものに依存していることは私の正しい理解ですか?

次に、IE6-7を失敗させる無効なJSONコードに関するコメントがありますが、IE6-7にネイティブではないと思いましたか?

誰でも?

77
David Thorisson

JSON.stringifyメソッドを使用するため、IE <8でサポートするために JSON3パーサー を含める必要があります。

このライブラリはECMAScript 5th Edition仕様の標準メソッドに準拠しており、利用可能なネイティブ実装があるかどうかを確認するため、最新のブラウザーではこのネイティブ実装が使用されます。

105
CMS

何か誤解されているはずです。オブジェクト表記はしばらくの間JavaScriptにあります(私が理解している限り、JavaScriptのコアコンセプトです)。 _var o= {a:"b"};_のようなコードを書く機能
したがって、これを実行できる場合は、eval('var o= {a:"b"};')を呼び出すこともできます。これは、任意のブラウザーで「JSONを実装する」方法です。

更新:投稿を読み直して、問題はオブジェクトのシリアル化を解除するのではなく、オブジェクトをシリアル化するという点を最終的に取得しました。次に、そのためにJavaScriptライブラリを使用できます。 https://github.com/douglascrockford/JSON-js/blob/master/json2.js

2
naivists

JSONをいじるには、ファイルに json2.js を含めるだけです。 IE 9。

2
Padhu

「動的に追加されたインラインコード」は、Douglas Crockfords json2ライブラリが提供する機能、またはブラウザーバージョンがネイティブにサポートしていない場合はjQueryの独自の実装を使用しています。

jQueryは、ブラウザーが提供するJSONデコード機能に依存しません。ブラウザがJSONデコードをサポートしている場合、jQueryはそれを使用します。

1
Matt