要重複這樣的JSON的:我如何循環訪問JSON對象的jQuery
{
"object": {
"array1": {
"id": 1
},
"array2": {
"id": 2
}
}
}
我已經嘗試使用這樣的:
for (var i in dictionary) {
console.log(dictionary[i].id);
}
,但不起作用。
要重複這樣的JSON的:我如何循環訪問JSON對象的jQuery
{
"object": {
"array1": {
"id": 1
},
"array2": {
"id": 2
}
}
}
我已經嘗試使用這樣的:
for (var i in dictionary) {
console.log(dictionary[i].id);
}
,但不起作用。
我到處找,找不到我想要的答案。認真嗎?沒有看到$.each
做什麼?
泛型迭代器函數,可用於無縫遍歷對象和數組。具有長度屬性的數組和類似數組的對象(例如函數的參數對象)通過數字索引迭代,從0到length-1。其他對象通過它們的命名屬性進行迭代。
var arr = {
"object": {
"array1": {
"id": 1
},
"array2": {
"id": 2
}
}
};
$.each(arr, function (i, v) {
console.log(i);
console.log(v);
$.each(v, function (idx, val) {
console.log(idx);
console.log(val);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
AJAX
如果您正在使用AJAX來獲取JSON,你可以很好的使用方法:$.getJSON
:
$.getJSON("https://cdn.rawgit.com/fge/sample-json-schemas/master/avro/avro-schema.json", function (res) {
$.each(res, function (i, v) {
console.log(i);
console.log(v);
if (typeof v == "object")
$.each(v, function (idx, val) {
console.log(idx);
console.log(val);
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
var objectData = {
"object": {
"array1": {
"id": 1
},
"array2": {
"id": 2
}
}
};
$.each(objectData, function(key, data){
// Do stuff here
});
要從網址使用JSON使用:
$.ajax({
url: URL,
dataType: 'jsonp',
success: function(json) {
$.each(json, function(key, data){
console.log(key);
console.log(data);
});
}
});
請嘗試以下
var d={
"object": {
"array1": {
"id": 1
},
"array2": {
"id": 2
}
}
}
$.each(d,function(i,v){console.log(i,v)})
另一個LQ答案沒有任何解釋。比前兩個答案更糟糕。 –
難道人不讀的文檔和教程了嗎? https://learn.jquery.com/using-jquery-core/iterating/ – epascarello
https://jsfiddle.net/jzxe1a6b/ – timo
@epascarello重新開放,因爲現在很清楚。 –