1

私はこれまで使ったことがないeval()ので、構文がひどく間違っているだけだと思います。次の何が問題になっていますか。

var JSONAsString = '{"item1":"one", "item2":"two", "item3":"three"}';
var JSONAsObject = eval(JSONString);
alert(JSONAsObject.item1);

機能していないように見えるので、ページをロードしても何も起こりません。

はい、私は eval を使用すべきではないことを知っています。の構文は evalの構文とJSON.parse()同じだと思います...そうですか?そうである場合、(コードを修正した後) eval を JSON.parse に置き換えても、同じことを行いますか?

4

2 に答える 2

5

使用するときは、JSON を次evalのようにラップする必要があります。()

var JSONAsString = '{"item1":"one", "item2":"two", "item3":"three"}';
var JSONAsObject = eval('(' + JSONAsString + ')');
alert(JSONAsObject.item1);

ただし、後で使用するのではなくJSON.parse() 、最初から使用する必要があります。そうしないと、有効な JavaScript である無効な JSON が機能する可能性がありますが、に切り替えると機能しなくなりJSON.parseます。

一部の古いブラウザーにはネイティブ JSON サポートがないためjson2.js、使用する場合は含める必要があることに注意してください。JSON.*

于 2012-06-17T10:06:34.323 に答える
3

JSON の解析に eval() を使用しないでください。Douglas Crockfords json2 を使用すると、クロスブラウザーのサポート、パフォーマンス、およびセキュリティが得られます: https://github.com/douglascrockford/JSON-js

于 2012-06-17T10:08:24.883 に答える