文字列をJSONに変換

2169 ワード

Ajaxを利用したプロジェクト開発では,JSON形式の文字列をフロントエンドに戻す必要があり,フロントエンドはJSONオブジェクト(JSON)として解析されることが多い.ECMA-262(E 3)ではJSON概念を標準には書かれていないが,ECMA-262(E 5)ではJSONの概念が正式に導入され,グローバルなJSONオブジェクトとDateのtoJSONメソッドが含まれている.1,eval方式解析
 
?
1
2
3
4 function   strToJson(str){       var   json = eval( '('   + str + ')' );       return   json; }
 
2,new Function形式
?
1
2
3
4 function   strToJson(str){      var   json = ( new   Function( "return "   + str))();      return   json; }
IE 6/7の文字列に改行()が含まれている場合、new Functionは解析できませんが、evalはできます.
 
3、グローバルなJSONを使う
?
1
2
3 function   strToJson(str){      return   JSON.parse(str); }
現在のIE 8(S)/Firefox 3.5+/Chrome 4/Safari 4/Opera 10がこの方法を実現した.JSONを使用します.parseはJSON規範を厳格に守らなければならない.属性は引用符で引き起こさなければならない.
?
1
2 var   str = '{name:"jack"}' ; var   obj = JSON.parse(str); // --> parse error
nameは引用符ではなくJSONを使用する.parseのすべてのブラウザに異常が投げ出され、解析に失敗しました.前の2つの方法は大丈夫です.