16

私はどこでもJSON.StringifyJSON.parseを使用しています。これはFirefoxでうまく動作します。それはIE9でこれ以上働いていないし、IE8でもうまくいきません。私に何ができる?JSON.stringifyとJSON.parseはIE9で動作しませんか?

+3

いくつかのコードを貼り付けることはできますか? – yoda

+0

ここをクリックしてIE 8を作成する方法http://stackoverflow.com/questions/3326893/json-stringify-supported-by-ie-8/10940623#10940623 – ggc

+0

詳細はこちらhttp://stackoverflow.com/questions/3326893/json-stringify-supporting-by-ie-8/10940623#10940623 – ggc

答えて

10

オブジェクトを持つブラウザに依存したくない理由だけではなく、ダグラス・クロックフォードによってスクリプトファイルを含める..あなたがここにminifedファイルを見つけることができます。http://www.json.org/js.html

一度あなたが方法アプト心配する必要はいけないインポートブラウザに存在します。

+0

私には良いアイデアがありますが、どのファイルを追加すべきですか?たくさんのファイルがありますhttps://github.com/douglascrockford/JSON-js –

+0

json2.jsを使用してください。それは最新のものです..もしあなたが縮小した1を得ることができます – Baz1nga

+0

は、 –

34

JSON.stringifyは、小文字で始まるsで始まります。 stringifyparseの両方がavailable in IE8+,であるが、standards modeのみである。

現在、クォークモードを使用している場合は、<!DOCTYPE html>の前にドキュメントを追加してください。また、呼び出すJavaScriptメソッドの大文字と小文字で始まります。組み込み関数はすべて小文字で始まります。

+2

回答を完了するには:http://caniuse.com/#search=json –

+6

さらに、あなたがローカルで開発している場合は注意してくださいローカルホストアドレス。数週間前にIE9へのWindows Updateにより、ローカルホストのアドレスに対して互換モードを使用して自動的に開始されました。 –

+0

私は既に<!DOCTYPE HTML PUBLIC "のようなものを持っています - // W3C // DTD HTML 4.01 Transitional // EN"> –

0

別の方法として、何らかの理由で厳格なモードで実行する必要がある場合(「厳密に使用する」ライブラリがあります)、https://github.com/douglascrockford/JSON-jsをご覧ください。私は、

if (typeof JSON === "undefined") { 
    var JSON = { 
     parse: <insert value of json_parse from library here> 
    }; 
} 

私の問題は、(strictモードが参加し、ライブラリによって使用されているIE9で動作しないアプリケーションのコードだった:私は、これはJSONが定義されていない場合は、最初のチェックし、それがある場合にのみ機能JSON.parseを生成するように変更しました信じて)。それが私にとって問題を解決しました。

0

単なる問題は、UTF-8ヘッダーを送信するとJSONが無効になることです(IEはそうではありません)。問題が説明されているように、それはまだIE9にも適用されるかもしれません...かつてはhow toと書かれていましたが、数年前です。ネイティブJSONを解析できるブラウザにJSONサポートを追加することは、おそらく最適な解決策ではありません。なぜなら、JSONを期待された形式で提供することができないためです。

関連する問題