5、jQuery解析json数据方法

      注意$.post、$.get如果没有设置返回type为json,那么返回的都是json字符串。$.getJOSN默认返回json对象

1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:

index.html

<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方法为例说明数据处理方法:

index.html

<script>
    $(function(){
        $("#getload").click(function(){
            $.getJSON('ajax.php',{name:'lgx'},function(data){
                $.each(data,function(i,itme){
                    alert(itme.name);
                });
             });
        });
    });
</script>

ajax.php 

<?php
   $data = array(
       array(
       'name'=> 'liguoxiang1',
       'sex' => 'boy1'
       ),
       array(
       'name'=> 'liguoxiang2',
       'sex' => 'boy2'
       ),
   );
   echo json_encode($data);









你可能感兴趣的:(5、jQuery解析json数据方法)