我有一个JSON响应,下面是我的响应。
{
"data": [
{
"2": [
{
"name": "Test1",
"Address": "Test2"
},
]
},
{
"5": [
{
"name": "Test3",
"Address": "Test4"
},
]
},
]
}
我可以访问直到响应中的数据为止。这里的日期为“ 2”和“ 5”。如果此json响应中存在一个日期,则必须为该响应获取名称和地址 但是我必须显示数据列表。
<div *ngFor = "let data of result">
<span>{{data.name}}</span>
<span>{{data.Address}}</span>
</div>
在ts文件中,
let result = response.data;
我想从中访问姓名和地址。任何人都可以帮助我该怎么做。
答案 0 :(得分:3)
您可以使用Object.key
,map
和concat
函数来像这样平整数据
let obj = this.result;
this.result = Object.keys(obj).map(function (key) {
let objkey = obj[key];
let first = Object.keys(objkey)[0]
return obj[key][first];
});
this.result = [].concat.apply([], this.result);
演示在https://stackblitz.com/edit/angular-flat-array-property
已更新:
我使用过滤器更新演示以按日期应用过滤器。
let obj = this.result;
var filter = '5';
this.result = Object.keys(obj).map(function (key) {
let objkey = obj[key];
let first = Object.keys(objkey)[0]
if(filter == first){
return obj[key][first];
}else{
return null;
}
});
this.result = [].concat.apply([], this.result.filter(c=>c != null));