要重复这样的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重新开放,因为现在很清楚。 –