Отображение HttpClient GET-ответа на массив объектов определенного типа - PullRequest
0 голосов
/ 20 февраля 2020

Я создал модель для данных, которые запрашиваю через GET, и я просто пытаюсь отобразить вывод из GET в массив этой модели (объект Player).

Вот как выглядят возвращенные данные ответа, поступающие от API:

[
    {
        Id: 1
        PlayerName: "Dave",
        FirstSeason: 2013,
        LastSeason: 2016,
        BattingAverageRecord: [340, 210, 220, 300]
    },
    {
        Id: 2
        PlayerName: "Dennis",
        FirstSeason: 2013,
        LastSeason: 2016,
        BattingAverageRecord: [230, 221, 312, 240]
    },
    {
        Id: 3
        PlayerName: "Mary",
        FirstSeason: 2010,
        LastSeason: 2013,
        BattingAverageRecord: [330, 123, 151, 307]
    }

];

Я создал модель для данных:

export class Player {
    constructor(public Id: number,
                public PlayerName: string, 
                public FirstSeason: number, 
                public LastSeason: number, 
                public BattingAverageRecord: number[]) 
    {
        this.Id = Id;
        this.PlayerName = PlayerName;
        this.FirstSeason = FirstSeason;
        this.LastSeason = LastSeason;
        this.BattingAverageRecord = BattingAverageRecord;
    } 
}

Теперь я ' я пытаюсь отобразить дату ответа в массив Players:

retrievePlayer(): Observable<any> {

    return this.http.get<Player[]>(this.playerAPI)
        .pipe(
            map(data => {
                return new Player(data.Id, data.PlayerName, data.FirstSeason, data.LastSeason, data.GPARecord))
            }
        )
}

То, что я пробовал, явно неверно ... Я пытался сделать new Array(new Player(data.id ...)), но я знаю, что это тоже неправильно.

1 Ответ

0 голосов
/ 20 февраля 2020

при отображении вы можете легко структурировать свои данные и вернуть новую структуру, например

retrievePlayer(): Observable<<Player[]> {

    return this.http.get(this.playerAPI)
        .pipe(
            map(data => {
               return {
                 Id: data.Id,
                 PlayerName: data.PlayerName,
                 FirstSeason: data.FirstSeason,
                 LastSeason: data.LastSeason,
                 BattingAverageRecord: data.GPARecord

               }
            }
        )
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...