我试图从深层嵌套的json对象中获取价值。
我尝试使用管道,但我成功获取了键和值,但它们不是我想要获得的正确键和值。
有人可以帮我解决以下问题吗?
data: {
category:[
{0:{one:'test1', **two**:'test2'}},
{1:{one:'test3', **two**:'test4'}},
{2:{one:'test5', **two**:'test6'}}
]
number:[]
]
}
我想要两个'两个'值!
我目前有管道
import { Pipe, PipeTransform } from '@angular/core';
`@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
transform(value, args:string[]) : any {
let keys = [];
for (let key in value) {
keys.push({key: key, value: value[key]});
}
return keys;
}
}
在我的组件模板中,我有
<div *ngFor="let one of theme | keys">
<div *ngFor = " let two of one.key | keys">
<div *ngFor = "let three of two.key>
<p id="thm-title">{{three.value['two']}}</p>
</div>
</div>
</div>
答案 0 :(得分:2)
您的管道按预期工作,您只需对*ngFor
循环进行一些更改
您在问题中混合了数组和对象,因此我假设您的数据结构如下。此循环将输出test2
test4
test6
data = {
category: [
{ 0: { one: 'test1', two: 'test2' } },
{ 1: { one: 'test3', two: 'test4' } },
{ 2: { one: 'test5', two: 'test6' } }
]
}
HTML 的
<div *ngFor="let one of data | keys">
<div *ngFor="let two of one.value">
<div *ngFor="let three of two | keys">
{{ three.value['two'] }}
</div>
</div>
</div>