我创建了一个getReports方法,其中我传递了我的web api get方法并能够以json格式获取响应
Step1
getReports() {
return this._http.get(this.url)
.map((response: Response) => response.json())
.catch(this.handleError);
}
第二步
在我的组件构造函数类之后,我正在注入完整的服务,在ngOnInit下我使用this.reports订阅。
constructor(private _reportService: GetReports) {
}
ngOnInit() {
this._reportService.getReports().subscribe(reports => this.reports = reports);
}
所以在控制台我得到了127条记录的数组。我的问题是我如何遍历组件中的json数据,以便我将显示我的嵌套值
例如,在扩展数组i时,我将获得格式为
的数据0
Key 1:" abdef",
Key2 :[1,2,3 ]
key 3:['test','test2']
1
Key 1:" check",
Key2 :[1,2,3 ]
key 3:['test3','test2']
2
Key 1:" ghef",
Key2 :[1,2,3 ]
key 3:['test3','test2']
....
....
....
127
Key 1:" check",
Key2 :[1,2,3 ]
key 3:['test4','test3']
我需要检索数组值,这是127个元素的集合,就像我上面提到的第0个元素我有Key 1有值" abdef" ..所以首先我需要在127个元素中找到Key 1的所有不同值,类似地基于键1我需要找到Key 3下的所有不同值
我需要根据key1检索属于Key 3的所有值,并且不会出现重复记录。
我浏览了access key and value of object using *ngFor这样的链接,但这并不符合我的要求。
因此,如果我获得有关如何以角度检索或读取嵌套json数据的链接和响应,那将会很有帮助
答案 0 :(得分:0)
获取所有不同的密钥
var distinctKyes = reports.map((a) => a.key1).filter((item, pos, arr) => arr.indexOf(item) === pos);
根据key1获取所有key3(值=" abc")
var result = []
myarr.forEach((item) => {
if(item.key1 === "abc"){
result = result.concat(item.key3);
}
})
result = result.filter((item, pos) => result.indexOf(item) === pos);