通过json循环使用多个数组

时间:2016-11-25 13:50:00

标签: jquery arrays json

我使用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的值?

我没有实时数据,但这里是json响应结构的屏幕截图:enter image description here

2 个答案:

答案 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) {}
});