【发布时间】:2018-04-27 10:13:12
【问题描述】:
我遇到了一个问题,我需要使用动态变量访问嵌套的 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,我使用它来打印表格,在这里我可以使用“路径”变量来使用 href,然后根据 url 参数进行第二次 API 调用,如下所示:
<td><a href="/gui/tags/{{v1.path}}">View Container</a></td>
v1.path = accounts/17467*****/containers/7454***
现在我的问题是,我想在单击表格以显示一些数据之前发送此调用。问题是当访问具有动态变量的 JSON 时,如您所见:“Account2”、“Account1”。我不能使用:`$scope.GTMcontainersAccount = response.data.ACCOUNT1;
因为“account1”是动态的,并且会因用户而异。
有人有想法吗?正则表达式?
更新:
当我使用时:
$scope.GTMcontainersAccount = response.data;
$scope.keys = Object.keys(response.data);
for(n in $scope.keys)
{
$scope.asim = $scope.keys[n];
console.log($scope.asim);
console.log(response.data[$scope.asim]);
}
这给了我这个结果:
所以我必须这样写:
console.log(response.data[$scope.asim][0].accountId);
但这只给了我一行“account2”而不是“account1”
【问题讨论】:
-
使用 Object.keys() ?遍历所有键?
-
@Adriani6 console.log(Object.keys(response.data));给我“account1”和“account2”而不是键:值本身
-
@Asim 100 万个问题:如果你有对象和键,如何访问这个键的值?
-
是的,
Object.keys(obj).forEach(key => console.log(obj[key]))
标签: javascript html arrays angularjs json