JQuery ajax返回JSON時的處理方式

最近在使用JQuery的ajax方法時,要求返回的數據為json數據,在處理的過程中遇到下面的幾個問題,那就是采用不同的方式來生成json數據的時候,在$.ajax方法中應該是如何來處理的,下面依次來進行說明,由於本人使用的是asp.net,所以處理的頁面都是采用.net來做的!其他的方式應該是相同的吧
         首先給出要傳的json數據:[{"demoData":"This Is The JSON Data"}]
        1,使用普通的aspx頁面來處理
       本人覺得這種方式處理起來是最簡單的瞭,看下面的代碼吧
$.ajax({ 
                                        type:  "post", 
                                        url:  "Default.aspx", 
                                        dataType:  "json", 
                                        success:  function (data) { 
                                                $( "input#showTime").val(data[0].demoData); 
                                        }, 
                                        error:  function (XMLHttpRequest, textStatus, errorThrown) { 
                                                alert(errorThrown); 
                                        } 
                                });
    
         這裡是後臺傳遞數據的代碼
 
Response.Clear(); 
                        Response.Write( "[{\"demoData\":\"This Is The JSON Data\"}]"); 
                        Response.Flush(); 
                        Response.End();
         這種處理的方式將傳遞過來的數據直接解析為json數據,也就是說這裡的前臺js代碼可能直接把這些數據解析成json對象數據,而並非字符串數據,如data[0].demoData,這裡就直接使用瞭這個json對象數據
          2,使用webservice(asmx)來處理
這種處理方式就不會將傳遞過來的數據當成是json對象數據,而是作為字符串來處理的,如下代碼
$.ajax({     
type:  "post",     
url:  "JqueryCSMethodForm.asmx/GetDemoData",     
dataType:  "json", /*這句可用可不用,沒有影響*/ 

contentType:  "application/json; charset=utf-8",     
success:  function (data) {     
$( "input#showTime").val(eval('(' + data.d + ')')[0].demoData); 

//這裡有兩種對數據的轉換方式,兩處理方式的效果一樣//$("input#showTime").val(eval(data.d)[0].demoData); 

},     
error:  function (XMLHttpRequest, textStatus, errorThrown) {     
alert(errorThrown);     
}     
}); 
         下面這裡為asmx的方法代碼
[WebMethod]     www.aiwalls.com
 public  static  string GetDemoData() {     
 return  "[{\"demoData\":\"This Is The JSON Data\"}]";     
}
         這裡的這種處理方式就把傳遞回來的json數據當成瞭字符串來處理的,所在就要對這個數據進行eval的處理,這樣才能成為真正的json對象數據,
          3,使用ashx文件來處理
這種方式和普通的aspx的頁面處理是一樣的所以這裡就不多做解釋瞭
作者:xiahuawuyu

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *