在解析之前,我們必須先弄清楚幾個概念:數組,關聯數組以及json之間有哪些區別和聯繫點?
一.概念介紹
1.陣列
語法:
ECMAScript v3規定了陣列直接量的語法,JavaScript 1.2和JScript 3.0實現了它。可以把—個用逗號分隔的表達式清單放在方括號中,建立並初始化—個陣列。這些表達式的值將成為陣列元素。例如:
var a = [1, true, 'abc'];
具體操作查看API.
ps:必須方括號隔開。
2.關聯數組
1.語法:
var myhash= {”key1″:”val1″, “key2″:”val2″ };//obj
2.var
myhash= {key1:”val1″, key2:”val2″ };//obj-也可以
ps:跟json格式幾乎相同,但是json格式要求更加嚴格(裡面的鍵值對必須使用雙引號),但json只能作為一種格式標準,如果要對其進行操作必須轉換成關聯數組對象(obj)。
2.簡單操作
1.新增鍵值
// 新增一個鍵 newkey ,鍵值為 newval
myhash[”newkey”] = “newval”;
2.刪除Hash關聯數組已有鍵值
// 刪除一個鍵 newkey ,同時,該鍵值對應的 newval 也就消失了
delete myhash[”newkey”];
3.遍歷Hash關聯數組
// 遍歷整個hash 陣列
for (key in myhash) {
val = myhash[key];
}
4.獲得值
方式1.myhash.key1
方式2.myhash.key2
3.json
格式要求:
{”key1″:”val1″, “key2″:”val2″ };//嚴格依照此格式,操作可依照關聯數組的運算
二.前後台互動中幾個關鍵點
1.當伺服器發送的資料不是一條json,而是多條json時,則應當聯繫數組和關聯陣列來組裝字串
例如:var objs = [{ id: 1, name: 'n_1' }, { id: 2, name: 'n_2'}];
2.至始至終伺服器給客戶端的資料都只是字串,因此為了讓其能夠在js中對其進行必要的操作,可以透過eval()進行轉換成js可執行的物件。
因此jQuey中提供的$.parseJSON()是有局限的,如果是上面1提到的這種情況則必須使用eval()進行轉換,然後再透過$.each(objs,function(i ,o){...})進行操作
三.具體的實例代碼
頁碼: