2009-11-24 4 views
20

クイック質問は、おそらく誰かのためのケーキの一部を知っているためにasnwer。IE6のJSONオブジェクト - どのように?

私はもの(とJSON.stringify)の束のためのJSONを使用して、簡単なasp.netのウェブサイトを持っている

すべてなど、Firefoxで良い、まだ、IE6で私はJSONが未定義であることで、エラーに遭遇します。

(他のブラウザのネイティブJSONオブジェクトを使用して)私がすでに行っていることを壊さずにJSON実装を含める方法はありますか? そうなら、どうですか?

ありがとうございます!

+0

あなたは何を使用していますか? http://json.org/json2.js? –

+0

ライブラリを使用しておらず、 'JSON.stringify'が存在することを期待していますか? –

+0

はブラウザでネイティブJSONサポートに頼っているように聞こえるかもしれませんが、Firefoxでは動作していてIEでは動作しません - https://developer.mozilla.org/en/Using_JSON_in_Firefox –

答えて

33

https://github.com/douglascrockford/JSON-jsのjson2ライブラリは、あなたが探しているものです。それを無条件に含めることができ、JSON.parseとJSON.stringifyをグローバル名前空間に追加します(まだ定義されていない場合のみ)。組み込みのJSONを混乱させることはありません。出典:

if (!this.JSON) { 
    this.JSON = {}; 
} 
... 
if (typeof JSON.stringify !== 'function') { 
... 
if (typeof JSON.parse !== 'function') { 

これは包括的です。なんらかの理由でJSON.stringを持っていてもJSON.parseを持っていなくても(あるいはその逆の場合でも)、元のものをそのまま残して正しいことを行います。

+6

リンクがエラーatmを投げています。バックアップはhttps://github.com/douglascrockford/JSON-jsです – Jafin

4

ご使用のFirefoxのバージョンによって、JSONライブラリの組み込みサポートが提供されている可能性があります。しかし理想的には、json.orgのJSON jsライブラリ(ホストされたドメインにそのコピーを作成する)を含める必要があります。

+0

はい、最近のバージョンのjsonライブラリは、使用するネイティブjsonがあるかどうかを検出します。 – Nosredna

0

単にJSON.stringifyを確認し、存在しない場合は、他の方法を使用してデータをJSON文字列に解析します。

1

JSON-jsをDouglas CrockfordのGithubで使用可能にすると、JSOnオブジェクトがネイティブにサポートされていないブラウザでJSOnオブジェクトが使用できるようになり、JSOnオブジェクトを使用するurページにjsファイルが1つだけ含まれます。

https://github.com/douglascrockford/JSON-jsはまた、私はまた、この問題に会った。このリンクhttp://json.org/js.html

2

をチェックアウト、あなたはJSONを使用する前に、json2.jsロードすることができます。このlinkを参照してください。

関連する問題