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]    
public static string GetDemoData() {    
return "[{\"demoData\":\"This Is The JSON Data\"}]";    
}
         這裏的這種處理方式就把傳遞回來的json數據當成了字符串來處理的,所在就要對這個數據進行eval的處理,這樣才能成爲真正的json對象數據,
          3,使用ashx文件來處理
這種方式和普通的aspx的頁面處理是同樣的因此這裏就很少作解釋了!
相關文章
相關標籤/搜索