从Angular2中的JSON数组打印属性值

Posted

技术标签:

【中文标题】从Angular2中的JSON数组打印属性值【英文标题】:print attributes values from JSON array in Angular2 【发布时间】:2016-07-21 17:54:03 【问题描述】:

我正在使用 Angular2,并以这种方式从 Firebase 检索了一些数据:

dataset: any;
onGetData() 
    this._dataService.getAllData()
        .subscribe(
        data => this.dataset = JSON.stringify(data),
        error => console.error(error)
    );

如果我打印 dataset 我会得到这个 JSON:

"-KE8XuCI7Vsm1jKDJIGK":"content":"aaa","title":"bbb","-KE8XvM268lWhXWKg6Rx":"content":"cccc","title":"dddd"

如何打印出仅由该 JSON 数组中的 title 值组成的列表?

我想要:bbb - dddd

【问题讨论】:

【参考方案1】:

您只能使用 ngFor 遍历数组。在您的情况下,您需要实现一个自定义管道来迭代对象的键。

类似的东西:

@Pipe(name: 'keyValues')
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;
  

并像这样使用它:

<span *ngFor="#entry of dataset | keyValues">           
  Title: entry.value.title
</span>

查看这个问题了解更多详情:

How to display json object using *ngFor

【讨论】:

【参考方案2】:

在你看来你需要

<div *ngFor='#data of dataset'>
     data.title  -
</div>

【讨论】:

它不起作用。我已经尝试过这种方式:***.com/questions/36339173/… 但我得到了那个错误。我也尝试添加一个管道 MapToIterable 但它仍然没有工作 哦,那是因为数据集不是数组。你需要它是一个数组来循环遍历这样的数据 我在控制台中收到此错误:错误:找不到不同的支持对象 '"-KE8XuCI7Vsm1jKDJIGK.... 我尝试使用数据集:对象 [] 而不是数据集:任何但它给了我此行错误:data => this.dataset = JSON.stringify(data)

以上是关于从Angular2中的JSON数组打印属性值的主要内容,如果未能解决你的问题,请参考以下文章

如何在php中打印json文件数组中的数据

Swift JSON 解析和打印数组中的指定值

angular2从服务中打印json

如何从 extjs 存储中获取 JSON 数组中的属性值?

Angular2 从 JSON 数组中删除重复项

如何从 JSON API 循环数组