如何以角度将 JSON 对象数组转换为 Observable 数组

Posted

技术标签:

【中文标题】如何以角度将 JSON 对象数组转换为 Observable 数组【英文标题】:How to convert JSON Array of Objects to Observable Array in angular 【发布时间】:2020-08-01 21:55:29 【问题描述】:

我正在从 Angular 调用一个 rest API,rest api 返回 JSON 对象数组中的数据,如下所示

现在我正在尝试将其转换为我的模型类数组,但没有任何进展,请您指导我。

我的模型课

我的服务文件

这里它在地图上出现错误,我不知道如何将其转换为我的模型类数组以在表格中显示它

【问题讨论】:

您是否在使用的文件中导入了地图运算符? import map from 'rxjs/operators'; 【参考方案1】:

解决了。

由于我直接获取对象数组作为响应,因此我不需要转换它并使用接口。所以这是我的正确代码

fetchAllGamesRecord() : Observable<Fifa[]>
    const fifaUrl = `$this.baseUrl/fetchAllGamesRecord`;
    return this.httpClient.get<Fifa[]>(fifaUrl);
  

这个函数是这样调用的

this.fifaService.fetchAllGamesRecord().subscribe(
      data => 
        this.allGameRecord = data;
        console.log(`Data = `+data);
      
    );

【讨论】:

【参考方案2】:

您可以在调用 fetchAllGamesRecord 时这样做

fetchAllGamesRecord().subscribe( (response: Fifa[]) => 
  // do something

Fifa 是接口而不是类

【讨论】:

没看懂,能不能详细解释一下或者写个伪代码【参考方案3】:

在 Spring 框架中,Fifa[] 在 REST 调用中也不起作用,我们需要将它放在另一个类中,如下所示,我认为这会起作用。

export class FifaWrapper 
    wrapper: Fifa[];

并且也在 Observable 中使用这个类

fetchAllGamesRecord():  Observable<FifaWrapper> 
 ... do you handling here

【讨论】:

以上是关于如何以角度将 JSON 对象数组转换为 Observable 数组的主要内容,如果未能解决你的问题,请参考以下文章

如何以角度解开 Json 数据?

如何将对象响应对象的猫鼬聚合数组转换为json对象响应

Swift 4 如何将自定义对象数组转换为 JSON

将json数据转换为角度2+的对象[重复]

将返回的 Observables 转换为角度的自定义类数组

将 swift 数组转换为对象以进行 json 序列化