jquery.post用法のtype設定問題


ajaxを使ってdataデータを取得すると、直接data.fooが得られます。低いバージョンのjqueryは1.4の前に
 
$.post('/admin/UserBookView.do', {}, function(data) {
console.info(data);
});
でdata情報を印刷して、表示したのはjsonフォーマットの文字列で、以下の通りです。
 
{"acceptIs":null,"entity":null,"refuseIs":null,"result":{"pageSize":10,
"resultList":[{"PRICE":3,"WCTIME":null,"NOTE":" ","CKTIME":null,"CUSER":"admin",
"CTIME":"2013\/12\/30 17:03:16","PHONE":"13111050937","ADDR":" ","CUSERID":"1","SLTIME":null}],
"resultListArray":null,"titles":["ID","CTIME","STATE""PRICE","NOTE"],"totalPage":1,"totalSize":4},
"source":null,"storageIs":null,"treeNodes":null}
でtypeが設定されていない場合、デフォルトで戻ったdataはtextタイプです。私達はdataを使って、中の値を取得しようとします。undefinedはこの時、2つの解決方法を返します。1:eval関数を使ってjson文字列をjsonオブジェクト
 
var datas=eval("("+data+")");
2に変換します。typeタイプを指定します。
 
$.post('/admin/UserBookView.do', {}, function(data) {
console.info(data);
},"json");
のバージョンが1.8+なら、この問題はなく、Jsonオブジェクトに戻ります。