注意$.post、$.get若是沒有設置返回type爲json,那麼返回的都是json字符串。$.getJOSN默認返回json對象php
1.對於服務器返回的JSON字符串,若是jquery異步請求沒作類型說明,或者以字符串方式接受,那麼須要作一次對象化處理,方式不是太麻煩,就是將該字符串放於eval()中執行一次。這種方式也適合以普通javascipt方式獲取json對象,如下舉例說明:html
index.htmljava
<script> $(function(){ $("#getload").click(function(){ $.post('ajax.php',{name:'lgx'},function(data){ var dataObj = eval("("+data+")"); //用eval將字符串轉換成json對象 alert("長度爲"+dataObj.length); $.each(dataObj,function(i,itme){ alert(itme.name); }); }); }); }); </script>
2.對於服務器返回的JSON字符串,若是jquery異步請求將type(通常爲這個配置屬性)設爲json,或者利用$.getJSON()方法得到服務器返回,那麼就不須要eval()方法了,由於這時候獲得的結果已是json對象了,只需直接調用該對象便可,這裏以$.getJSON方法爲例說明數據處理方法:jquery
index.htmlajax
<script> $(function(){ $("#getload").click(function(){ $.getJSON('ajax.php',{name:'lgx'},function(data){ $.each(data,function(i,itme){ alert(itme.name); }); }); }); }); </script>
ajax.php json
<?php $data = array( array( 'name'=> 'liguoxiang1', 'sex' => 'boy1' ), array( 'name'=> 'liguoxiang2', 'sex' => 'boy2' ), ); echo json_encode($data);