访问对象内的数组(json)

时间:2017-06-05 17:41:03

标签: json angular typescript

我有这个json文件,我想访问该对象内的数组:

best-sellers": [
    {
      "title": "Chuteira Nike HyperVenomX Proximo II Society",
      "price": 499.90,
      "installments": {
        "number": 10,
        "value": 49.90
      },
      "high-top": true,
      "category": "society",
      "image": ""
    },
    {
      "title": "Chuteira Nike HyperVenom Phantom III Cano Alto Campo",
      "price": 899.90,
      "installments": {
        "number": 10,
        "value": 89.90
      },
      "high-top": true,
      "category": "campo",
      "image": ""
    }
}
]

这是我的组件上的代码:

   ngOnInit(): void {
      this.service
      .lista()
      .subscribe(chuteiras =>{
        this.chuteiras = chuteiras;
      })
  }

我的模板如下所示:

<div *ngFor="let chuteira of chuteiras.best-sellers">

但有角度并没有将它重新称为“畅销书”,这是我得到的错误:

  

无法读取未定义的属性“最佳”

2 个答案:

答案 0 :(得分:2)

只需使用括号表示法,

<div *ngFor="let chuteira of chuteiras["best-sellers"]">

答案 1 :(得分:0)

嗯,这是一种实现方法,但是角度6提供了一个简单的解决方案。当我遇到这个问题时,我自己解决了该解决方案,但是它对我不起作用,因此在搜索并做出自己的想法后,我最终得到了该解决方案。

1。在我使用Web API的情况下,创建用于接收JSON数据的函数

getTrending() { return this.http.get( https://api.themoviedb.org/3/trending/all/day?api_key= $ {this.api_key} ); }

2。在我的情况下,我使用服务调用该函数,因此在将其导入到我的组件后,我只是添加了此       showPopular(): void { this.api.getTrending().subscribe((data: Array<object>) => { this.list = data['results']; console.log(this.list); }); }

如您所见,数据变量仅访问了我所需的信息。