JsonオブジェクトとJson文字列が入れ替わる(4つの変換方式)

1931 ワード

1.jQueryプラグインがサポートする変換方式:
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),   json      json   
2.ブラウザがサポートする変換方式(Firefox、chrome、opera、safari、ie 9、ie 8)などのブラウザ:
JSON.parse(jsonstr); //   json      json   
JSON.stringify(jsonobj); //   json     json    
注:ie 8(互換モード)、ie 7とie 6はJSONの対象がないので、JSON公式の方式を採用して、json.jsを導入することを推奨します.
3.Javascriptサポートの変換方式:
eval('(' + jsonstr + ')'); //   json      json  ,     json           
  :ie8(    ),ie7 ie6     eval()      JSON  ,        ,       eval   json      。 
4.JSON公式の変換方式:
湖南省にある地名http://www.json.org/json.jsを提供しています.このようにie 8(互換モード)で、ie 7とie 6はJSONオブジェクトとそのstrigify()とパーパーレー()方法をサポートできます.はい、ありますhttps://github.com/douglascrockford/JSON-js上でこのjsを獲得して、普通は今json 2.jsを使います.
注:JSON.parse()とeval()の違い
   JSON.parse()はjson形式のデータを解析でき、解析する文字列をフォーマットチェックします.フォーマットが正しくないと解析しません.eval()はどの文字列も解析できます.evalは安全ではありません.
   たとえば次の文字列:
var str = 'alert(1000.toString())';
eval(str);
JSON.parse(str);
    はevalで解析でき、ダイアログが表示されますが、JSON.parseでは解析できません.実はalertは悪いところがありません.怖いのは、悪意のあるユーザーがjson文字列にトロイの木馬をページに挿入するシナリオを注入したら、evalでも操作できます.JSON.parse()を使うなら、この問題を心配する必要はありません.
注意:いくつかの低レベルのブラウザはまだJSON.parseをサポートしていません.https://github.com/douglascrockford/JSON-js/blob/master/json2.js ダウンロードします.