一、$.each遍歷json對象
查看一個簡單的jQuery的例子來遍歷一個JavaScript數組對象。
```
var json = [
{"id":"1","tagName":"apple"},
{"id":"2","tagName":"orange"},
{"id":"3","tagName":"banana"},
{"id":"4","tagName":"watermelon"},
{"id":"5","tagName":"pineapple"}
];
$.each(json, function(i, obj) {
alert(obj.tagName);
});
```
上面的代碼片斷工作正常,提示 “apple”, “orange” … 等,如預期一樣。
問題1: JSON 字符串。
下面的例子中,聲明了一個JSON字符串(隨附單或雙引號)直接地。
```
var json = '[
{"id":"1","tagName":"apple"},
{"id":"2","tagName":"orange"},
{"id":"3","tagName":"banana"},
{"id":"4","tagName":"watermelon"},
{"id":"5","tagName":"pineapple"}
]';
$.each(json, function(i, obj) {
alert(obj.tagName);
});
```
在`Chrome`中,它顯示在控制臺下面的錯誤:
`Uncaught SyntaxError: Unexpected token ILLEGAL`
解決方案:JSON字符串轉換為JavaScript對象。
要修復它,通過標準JSON.parse()或jQuery 的 $.parseJSON 將其轉換為JavaScript對象。
```
var json = '[
{"id":"1","tagName":"apple"},
{"id":"2","tagName":"orange"},
{"id":"3","tagName":"banana"},
{"id":"4","tagName":"watermelon"},
{"id":"5","tagName":"pineapple"}
]';
$.each(JSON.parse(json), function(i, obj) {
alert(obj.tagName);
});
//or
$.each($.parseJSON(json), function(i, obj) {
alert(obj.tagName);
});
```
二、json數組有長度json.arrayname.length,如果單純是json格式,那么不能直接使用json.length方式獲取長度,而應該使用其他方法。(注:arrayname為數組名)
例1:
現在有json1數據如下:
```
var json1={
"abc":[
{"name":"txt1"},
{"name","txt2"}
]
};
```
以上遍歷的方法是:
```
for(var i=0;i<json1.abc.length;i++){
alert(json1.abc[i].name);
}
```
這里的json1.abc是一個數組,數組是由2個子json組成的,數組是有length屬性的,而普通的json是沒有該屬性的。
例2:
現在有json2數據如下:
```
var json2={"name":"txt1","name2":"txt2"};
json本身沒有length屬性,所以用length屬性自然會出錯。
[javascript] view plain copy
for(var i=0;i<json2.length;i++){
alert(json2[i].text);
}
```
以上腳本執行時,將會出錯。
那么要遍歷這樣的json怎么辦呢?
我們可以這么做:
```
for(var js2 in json2){
alert( js2 + "=" + json2[js2]);
}
```
既然json沒有length屬性,如果要知道他的長度怎么辦呢?
很簡單,把上面的遍歷改一下就是了:
```
var jslength=0;
for(var js2 in json2){
jslength++;
}
```
把這段代碼寫成一個方法,以后調用就行了:
```
function getJsonLength(jsonData){
var jsonLength = 0;
for(var item in jsonData){
jsonLength++;
}
return jsonLength;
}
```
- 簡介
- 兩種結構對象和數組
- JSON對象和字符串轉換
- JSON字符串轉換為JSON對象
- JSON對象轉換為JSON字符串
- 實例1-通用的JSON數組去重
- 實例2-根據某個字段實現對json數組的排序
- 實例3-JSON根據某一個字段進行篩選
- 實例4-去重后取出某一字段形成新結構
- 實例5-出發車站從json動態獲取
- 數據操作
- 遍歷
- 復制一個新JSON數組
- 實例6-點擊checkbox動態篩選json
- 如何使用JS篩選JSON數據
- filter
- filter后數據變化
- json判斷為空顯示與否
- JavaScript 陣列處理方法[filter(), find(), forEach(), map(), every(), some(), reduce()]
- json_decode
- php 解決json_encode中文UNICODE轉碼問題
- js中判斷返回的json字符串中是否有某個字段
- 如何獲取json對象中的特定值
- 如何刪除json中的某個變量key
- json將某一字段轉化為字符串用逗號連接
- json的某一個鍵名作為鍵值
- 鍵名和鍵值
- 根據鍵名得到對應的鍵值三種方法
- 鍵名和鍵值分開作為一個新的json對象
- 鍵名作為變量
- field_as_key其中一個鍵名作為鍵值
- 遍歷JSON、獲取JSON長度的方法
- js的for循環不如$.each好用
- 常用函數
- 插件
- jsonsql
- js判斷object里面是否包含某一字段
- 檢測一個字符是否在數組中
- 判斷json數據是否為空
- 兩個JSON合并
- js如何將兩個對象合并成一個對象
- 數組與對象的追加方式
- js數組去重(包括對象數組去重)
- JSON 元素的添加刪除
- JavaScript對Json的增刪改屬性
- js刪除json中指定的元素
- json中如何刪除指定元素
- 如何在Javascript中動態創建字典和添加鍵值對
- JS 獲取對象key
- js如何通過相同鍵值合并兩個json數組
- 有相同鍵值的json合并為一個數組
- js判斷一個數組是否包含另一個數組
- js將一個數組插入另一個數組
- js移除Array中指定元素
- 數組的操作
- 合并數組
- 去重數組