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);
}
});
type: "post",
url: "Default.aspx",
dataType: "json",
success: function (data) {
$( "input#showTime").val(data[0].demoData);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
這里是后臺傳遞數據的代碼




這種處理的方式將傳遞過來的數據直接解析為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的方法代碼




這里的這種處理方式就把傳遞回來的json數據當成了字符串來處理的,所在就要對這個數據進行eval的處理,這樣才能成為真正的json對象數據,
3,使用ashx文件來處理
這種方式和普通的aspx的頁面處理是一樣的所以這里就不多做解釋了!
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!