我使用ajax好多年了,以往把請求交給asp或php處理完成之後往往是輸出一個字串,然後把這個字串返回給用戶端,用用戶端的javascript對該字串進行split.
偶爾也用xml,伺服器端處理完之後產生xml再返回.
但是這些方式在用戶端處理的時候都很麻煩.其實完全可以用json來做.因為json在用戶端操作的時候感覺最靈活,看我下邊的代碼:
假如這個字串是我從伺服器端處理完各種操作之後輸出給用戶端的內容,從表面上看,這不過就是一個字串,但是他卻遵循了json的格式規定.如果要轉載本文請註明出處,免的出現版權紛爭,我不喜歡看到那種轉載了我的作品卻不註明出處的人QQ9256114
'[{"name":"王強","age":20},{"name":"王海雲","age":18}]'
我在用戶端使用一個js變數來接收這個字串
var str = '[{"name":"王強","age":20},{"name":"王海雲","age":18}]';
然後把這個字串轉化成json
var JsonL=eval("("+str+")");//或var JsonL=new Function("return"+str)();
//轉化後應該是:JsonL= [{"name":"王強","age":20},{"name":"王海雲","age":18}];
//由此不難看出這個結構很像array,所以我們可以使用操作array的思路來操作該json
接下來就可以控制json內的元素輸出了.
alert(JsonL[1].name);
for(var i=0;i<JsonL.length;i++){
for(var key in JsonL[i]){
alert("key:"+key+",value:"+JsonL[i][key]);
}
}
下邊是一個比較複雜的json例子:
var JsonL=[
{"parent":1,"id":11,"tit":"a1","lst":["9|a11","7|a12","5|a13","4|a14","2|a15"]},
{"parent":2,"id":12,"tit":"a2","lst":["9|a11","7|a12","5|a13","4|a14"]},
{"parent":3,"id":13,"tit":"a3","lst":["9|a11","7|a12","5|a13"]},
];
alert(JsonL[0].id);
alert(JsonL.length);
alert(JsonL[0].lst.length);
alert(JsonL[1].parent);
//全部輸出:
for(var i=0;i<JsonL.length;i++){
for(var key in JsonL[i]){
alert("鍵名:"+key+",值:"+JsonL[i][key]);
}
}
//部分輸出:
for(var i=0;i<JsonL[0].lst.length;i++){
alert("值:"+JsonL[0].lst[i]);
}