正在解析包含 Angular 中的名称值对的 Json 9
Parsing Json that contains name value pairs in Angular 9
我只想将每个条目显示为 html table 中的一行,目前我得到以下内容
编号
id:1
taskFields:[object 对象],[object 对象],[object 对象]
相反,我希望能够看到隐藏在对象 Object
中的值
我有一个angular模板
<tr *ngFor="let entry of entries | keyvalue">
<td>{{entry.key}}:{{entry.value}}</td>
</tr>
在我的 component.ts 文件中
ngOnInit():void{
this.entries = this.testService.getData().pipe((result) =>{
return result
}
在我的测试服务中我有
getData() : Observable<TestEntry[]>{
return this.httpClient.get<TestEntry[]>(this.baseUrl + '/api/Test'/)
.pipe(
catchError(error => {throw err;})
);
}
这个returns下面的数据
{"id":1,"testFields":[{"name":"test_id","value":"12345"},{"name":"testCategory", "value":"testAngular"}, {"name":"testUndefined", "value":""}]}
我的 TestEntry 是
export interface TestEntry{
id:string
testFields:TestFields
}
我的 TestFields 是
export interface TestFields{
name:string
value:string
}
如果值是数组,则需要对其进行迭代。使用以下内容:
<table>
<tr *ngFor="let entry of entries | keyvalue">
<td>{{entry.key}}</td>
<!-- If value is array iterate over it-->
<ng-container *ngIf="entry.value && entry.value.length > 0; else obj">
<td *ngFor="let inner of entry.value">{{inner.name}} : {{inner.value}}</td>
</ng-container>
<!-- If value is object display it-->
<ng-template #obj>
<td>{{entry.value}}</td>
</ng-template>
</tr>
</table>
我只想将每个条目显示为 html table 中的一行,目前我得到以下内容
编号 id:1
taskFields:[object 对象],[object 对象],[object 对象]
相反,我希望能够看到隐藏在对象 Object
中的值我有一个angular模板
<tr *ngFor="let entry of entries | keyvalue">
<td>{{entry.key}}:{{entry.value}}</td>
</tr>
在我的 component.ts 文件中
ngOnInit():void{
this.entries = this.testService.getData().pipe((result) =>{
return result
}
在我的测试服务中我有
getData() : Observable<TestEntry[]>{
return this.httpClient.get<TestEntry[]>(this.baseUrl + '/api/Test'/)
.pipe(
catchError(error => {throw err;})
);
}
这个returns下面的数据
{"id":1,"testFields":[{"name":"test_id","value":"12345"},{"name":"testCategory", "value":"testAngular"}, {"name":"testUndefined", "value":""}]}
我的 TestEntry 是
export interface TestEntry{
id:string
testFields:TestFields
}
我的 TestFields 是
export interface TestFields{
name:string
value:string
}
如果值是数组,则需要对其进行迭代。使用以下内容:
<table>
<tr *ngFor="let entry of entries | keyvalue">
<td>{{entry.key}}</td>
<!-- If value is array iterate over it-->
<ng-container *ngIf="entry.value && entry.value.length > 0; else obj">
<td *ngFor="let inner of entry.value">{{inner.name}} : {{inner.value}}</td>
</ng-container>
<!-- If value is object display it-->
<ng-template #obj>
<td>{{entry.value}}</td>
</ng-template>
</tr>
</table>