我使用json和jQuery从Instagram中提取图像。
json数据包含对象和数组。不知何故,我无法循环第二个数组,直到达到我需要的值。
这是我的代码:
var request = "./myapi.php?user=jamieoliver"; //&callback=myFunction
$.ajax({
cache: false,
dataType: "json", // or "jsonp" if we enabled it
url: request,
success: function(response) {
console.log(response);
for (var i = 0; i < response.entry_data.ProfilePage.length; i++) {
console.log(response.entry_data.ProfilePage[i].user.media.nodes[i].thumbnail_src);
}
},
error: function(xhr, status, error) {}
});
问题在于:nodes[i]
- nodes []是一个数组 - 而我的代码并没有遍历它 - 它只给出了nodes []内第一个对象内的值。如何循环遍历节点[]以在其每个对象中获取thumbnail_src
的值?
答案 0 :(得分:4)
这样的事情:
var request = "./myapi.php?user=jamieoliver"; //&callback=myFunction
$.ajax({
cache: false,
dataType: "json", // or "jsonp" if we enabled it
url: request,
success: function(response) {
console.log(response);
for (var i = 0; i < response.entry_data.ProfilePage.length; i++) {
for (var j = 0; j < response.entry_data.ProfilePage[i].user.media.nodes.length; j++) {
console.log(response.entry_data.ProfilePage[i].user.media.nodes[j].thumbnail_src);
}
}
},
error: function(xhr, status, error) {}
});
答案 1 :(得分:1)
您应该使用其他for
再次循环:
var request = "./myapi.php?user=jamieoliver"; //&callback=myFunction
$.ajax({
cache: false,
dataType: "json", // or "jsonp" if we enabled it
url: request,
success: function(response) {
console.log(response);
var nodes;
for (var i = 0; i < response.entry_data.ProfilePage.length; i++) {
nodes = response.entry_data.ProfilePage[i].user.media.nodes;
for (var n = 0; n < nodes.length; n++) {
console.log(nodes[n].thumbnail_src);
}
}
},
error: function(xhr, status, error) {}
});