Javascript 如何使用动态变量访问嵌套的JSON数据

Javascript 如何使用动态变量访问嵌套的JSON数据,javascript,html,arrays,angularjs,json,Javascript,Html,Arrays,Angularjs,Json,我遇到了一个问题,需要访问带有动态变量的嵌套JSON。这是我的JSON: { "Account2": [{ "accountId": "17467****", "containerId": "7454***", "path": "accounts\/17467*****\/containers\/7454***", }, { "accountId": "17467****", "containerId

我遇到了一个问题,需要访问带有动态变量的嵌套JSON。这是我的JSON:

{
    "Account2": [{
        "accountId": "17467****",
        "containerId": "7454***",
        "path": "accounts\/17467*****\/containers\/7454***",
    }, {
        "accountId": "17467****",
        "containerId": "7519***",
        "path": "accounts\/17467****\/containers\/7519***",
    }],
    "Account 1": [{
        "accountId": "17661****",
        "containerId": "7483***",
        "path": "accounts\/17661****\/containers\/7483***",
    }]
}
在前端使用AngluarJS我使用它打印一个表,在这里我可以使用“path”变量使用href,然后根据url参数进行第二次API调用,如下所示:

<td><a href="/gui/tags/{{v1.path}}">View Container</a></td>
这给了我一个结果:

所以我必须这样写:

console.log(response.data[$scope.asim][0].accountId);
但是这只给了我一行“account2”而不是“account1”

您需要使用获取对象的键,然后对于每个
获取相关的
数组
并循环其项:

Object.keys(data).forEach(function(key) {
  let accounts = data[key];
  if (accounts && accounts.length) {
    accounts.forEach(function(account) {
      console.log(account);
    });
  }
});
演示:

let数据={
“账户2”:[{
“账户ID”:“17467****”,
“集装箱运输”:“7454***”,
“路径”:“账户\/17467*****\/containers\/7454***”,
}, {
“账户ID”:“17467****”,
“集装箱运输”:“7519***”,
“路径”:“账户\/17467****\/containers\/7519***”,
}],
“账户1”:[{
“账户ID”:“17661****”,
“集装箱运输”:“7483***”,
“路径”:“账户\/17661****\/containers\/7483***”,
}]
};
Object.keys(数据).forEach(函数(键){
让账户=数据[键];
if(accounts&&accounts.length){
console.log(键+“:”);
accounts.forEach(函数(account){
控制台日志(帐号);
});
}

});使用Object.keys()?迭代所有键?@Adriani6 console.log(Object.keys(response.data));给我“account1”和“account2”不是键:值itself@Asim100万人的问题:如果你有一个对象和一个键,如何访问这个键的值?可能是重复的,
object.keys(obj.forEach(key=>console.log(obj[key]))
,回答得好。@Adriani6这是一个半小时前,我发现没有人想把它当作dup关闭,他还在努力让它工作,所以我决定回答:)
Object.keys(data).forEach(function(key) {
  let accounts = data[key];
  if (accounts && accounts.length) {
    accounts.forEach(function(account) {
      console.log(account);
    });
  }
});