jQuery Ajax非同步處理Json資料詳解_jquery
ajax
jquery
json
先我們來看一個官方的實例
使用AJAX 請求來獲得JSON 數據,並輸出結果:
複製程式碼 程式碼如下:
$("button").click(function(){
$.getJSON("demo_ajax_json.js",function(result){
, function(i, field){
$("div").append(field " ");
});
});
});
🎜>函數是簡寫的Ajax 函數,等價於:
複製程式碼 程式碼如下:
程式碼如下:
$.ajax({
url: url,
data: data,
success: callback,
dataType: json
});
發送🎜>到伺服器的資料可作為查詢字串附加到URL 之後。如果 data 參數的值是物件(映射),那麼在附加到 URL 之前將轉換為字串,並進行 URL 編碼。 $.ajax({
url: url,
data: data,
success: callback,
dataType: json
});
傳遞給 callback 的返回數據,可以是 JavaScript 對象,或以 JSON 結構定義的數組,並使用 $.parseJSON() 方法進行解析。
從test.js 載入JSON 資料並顯示JSON 資料中一個name 欄位資料:
複製程式碼 程式碼如下:
$.getJSON("test.js", function(json){
alert("JSON Data: " json.users[3].name);
});
一個與asp.net實例alert("JSON Data: " json.users[3].name);
});
先給出要傳的json資料:[{"demoData":"This Is The JSON Data"}]
1,使用普通的aspx頁面來處理
我覺得這種方式處理起來是最簡單的了,看下面的程式碼吧
複製程式碼吧 代碼如下:
$.ajax({
type: "post",
url: "Default.aspx",
dataType: "json",
success: function (data) {
(data[0].demoData);
error: function (XMLHttpRequest, textStatus, errorThrown) { > });
這裡是後台傳遞資料的程式碼
程式碼如下:
Response. Clear();Response.Write("[{"demoData":"This Is The JSON Data"}]");
Response.Flush();
Response.End();
程式碼如下:
$.ajax ({
type: "post",
url: "JqueryCSMethodForm.asmx/GetDemoData",
dataType: "json",/*這句話可用,沒有影響*/Typesuccess: function (data) {
$("input#showTime").val(eval('(' data.d ')')[0 ].demoData);
//這裡有兩種對資料的轉換方式,兩處理方式的效果一樣//$("input#showTime").val(eval(data.d)[0].demoData );
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorTh n); 🎜>下面這裡asmx的方法碼
複製程式碼
type: "post",
url: "Default.aspx",
dataType: "json",
success: function (data) {
(data[0].demoData);
error: function (XMLHttpRequest, textStatus, errorThrown) { > });
這裡是後台傳遞資料的程式碼
複製程式碼 程式碼如下:
程式碼如下:
Response. Clear();
Response.Flush();
Response.End();
這種處理的方式將傳遞過來的數據直接解析為json數據,也就是說這裡的前台js代碼可能直接把這些數據解析成json對象數據,而並非字符串數據,如data [0].demoData,這裡就直接使用了這個json物件資料2,使用webservice(asmx)來處理這種處理方式就不會將傳遞過來的數據當成是json物件數據,而是作為字串來處理的,如下程式碼
複製程式碼程式碼如下:
$.ajax ({
type: "post",
url: "JqueryCSMethodForm.asmx/GetDemoData",
dataType: "json",/*這句話可用,沒有影響*/Typesuccess: function (data) {
$("input#showTime").val(eval('(' data.d ')')[0 ].demoData);
//這裡有兩種對資料的轉換方式,兩處理方式的效果一樣//$("input#showTime").val(eval(data.d)[0].demoData );
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorTh n); 🎜>下面這裡asmx的方法碼
複製程式碼 程式碼如下:
[WebMethodMethod static string GetDemoData() { return "[{"demoData":"This Is The JSON Data"}]";
就把這個處理方式傳遞回來的json數據當成了字串來處理的,所在就要對這個數據進行eval的處理,這樣才能成為真正的json對象數據,
我們先來看一下html模板:
就把這個處理方式傳遞回來的json數據當成了字串來處理的,所在就要對這個數據進行eval的處理,這樣才能成為真正的json對象數據,
我們先來看一下html模板:
複製程式碼
程式碼如下: