五、jQuery解析json數據方法

      注意$.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);
相關文章
相關標籤/搜索