如何访问未命名的数组json中的对象

时间:2015-11-03 23:09:22

标签: javascript json angularjs

我有来自链接的json响应,当我调用$ http.get函数来获取数据时。我想要获取的值放在未命名的数组中。

json的回应:

{
  "kind": "analytics#gaData",
  "rows": [
    [
      "Windows",
      "28514"
    ],
    [
      "Android",
      "6473"
    ],
    [
      "iOS",
      "4011"
    ],
    [
      "Macintosh",
      "846"
    ],
    [
      "Linux",
      "752"
    ]
  ]
}

我正在使用角度函数$ http.get但我不知道如何访问这些值Windows - > 28514

在javascript上,我只是想在使用它们之前尝试获取这些对象,所以我只是将它们传递给控制台。

$http.get('https://radiopendimi-woosh.appspot.com/query?id=ahRzfnJhZGlvcGVuZGltaS13b29zaHIVCxIIQXBpUXVlcnkYgICAgPiJjAoM').then(function(data){
          console.log(data.rows);
      }); 

2 个答案:

答案 0 :(得分:0)

你必须遍历数组:

$http.get('https://radiopendimi-woosh.appspot.com/query?id=ahRzfnJhZGlvcGVuZGltaS13b29zaHIVCxIIQXBpUXVlcnkYgICAgPiJjAoM').then(function(data){
    for (var i = 0; i < data.rows.length; i++;) {
        console.log(data.rows[i]);
    }
});

答案 1 :(得分:0)

您可以将rows数组转换为对象:

var lookup = data.rows.reduce(function(out, pair) {
    out[pair[0]] = pair[1];
    return out;
}, {})

然后lookup将是这样的:

{
  "Windows": "28514",
  "Android": "6473",
  "iOS": "4011",
  "Macintosh": "846",
  "Linux": "752"
}

您可以按名称访问:

lookup.Windows
> 28514