Angular 2+ http get()JSON数据。不能.filter数据

时间:2017-07-27 20:27:38

标签: json angular http dictionary filter

我有一个service.ts,我使用get()方法(http)从本地JSON文件中获取数据。它工作正常。

a->palavra

在我的班上,我有“嫌疑”:

getMusic() {
  return this.http.get('assets/music.json')
.map((res:Response) => res.json())

我的JSON文件如下所示:

ngOnInit() {this.musicService.getMusic().subscribe(
data => { this.music = data.music}
  );
}

一切都很完美。那么现在我正在尝试过滤我的数据,所以它只显示没有= 11的音乐。

我有这个进口:

{
"music" : [
    { 
        "no": 11, 
        "name": "Music 1",
    },   ...... aso....

我尝试过几件事。包括过滤数字而不是字符串,使用==而不是===,将.filter放在内部或外部.map aso。当我尝试这个时,我根本得不到任何结果。我没有错误,只是没有结果:

//import 'rxjs/add/operator/map';
//import 'rxjs/add/operator/filter';
import 'rxjs/Rx';

2 个答案:

答案 0 :(得分:1)

您的操作员功能错误filter。它应该在music上过滤。

getMusic() {
    return this.http.get('assets/music.json')
    .map((res:Response) => res.json())
    //filter on `music` object instead of `x` directly
    .map(x => x.music.filter(y => y.name === 'Music 1'));
}

答案 1 :(得分:0)

filter函数应用于数组而不是它的实例 尝试使用

this.filteredArr = this.music.filter(x=>x.name == 'music 1'); //some condition