注意$.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);