ECMA-262(E3) は JSON の概念を標準に記述しません。幸いなことに、JSON の概念は ECMA-262(E5) グローバル JSON オブジェクトと Date の toJSON メソッドを含む、正式に導入されました。
1. eval メソッドが解析されるのは、これが最も古い解析メソッドだと思います。次のように:
function strToJson(str){
var json = eval('(' str ')');
return json;
}
str の両側のかっこを忘れないでください。
2. 新しい関数の形式は非常に奇妙です。次のように
function strToJson(str){
var json = (new Function("return " str))();
return json;
}
3、次のようにグローバル JSON オブジェクトを使用します。 🎜>
function strToJson(str){
return JSON.parse(str);
}
現在、IE8(S)/Firefox3.5/Chrome4/Safari4/Opera10 でこのメソッドが実装されています。
http ://blogs.msdn.com/ ie/archive/2008/09/10/native-json-in-ie8.aspx
https://developer.mozilla.org/en/Using_JSON_in_Firefox JSON.parse の使用は厳密に JSON 仕様に準拠する必要があります。たとえば、次のように属性を引用符で囲む必要があります。 var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> 解析エラー
名前が引用符で囲まれていません。JSON.parse を使用すると、すべてのブラウザで例外がスローされ、解析が失敗します。最初の 2 つの方法は問題ありません。
こちらも参照:
Chrome での JSON.parse の特別な実装