如何使用nestjs-httpservice(axios)获取嵌套的api数据



我使用nestjs HttpService.get从以下API检索数据:

getVehicleMake(): Observable<AxiosResponse<any>> {
return  this.httpService.get('https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json')
.pipe(
map(response => response.data.Results),
map(obj => obj.Make_Name),
);
}

API在其他数据中返回对象的嵌套数组。我试图访问一个Make_Name数组属性,但没有成功。我尝试过各种可观察的运算符,但似乎都不起作用。我知道我可以换成Promise。。。但我想使用可观察性。。。。。。任何想法都将不胜感激。

如果Results是一个数组,那么创建Make_Name属性的数组需要在Results属性上使用数组方法。鉴于以上情况,您有两种方法可以做到这一点。

选项1:在单个map功能中执行所有操作

getVehicleMake(): Observable<AxiosResponse<any>> {
return  this.httpService.get('https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json')
.pipe(
map(response => response.data.Results.map(result => result.Make_Name)
);
}

选项2:使用两个map函数,两个函数分别获取数据并正确映射

getVehicleMake(): Observable<AxiosResponse<any>> {
return  this.httpService.get('https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json')
.pipe(
map(response => response.data.Results),
map((results) => results.map(result => result.Make_Name)
);
}

最新更新