Мой API отвечает следующим кодом JSON:
{
"10240":
{"numberOfYears":2,"totalApplicants":162.5,"firstPriorityApplicants":71.5,"admittants":69.0,"standbyAdmittants":2.5,"quota1Gpa":3.55,"standbyGpa":0.0},
"51200":
{"numberOfYears":2,"totalApplicants":64.5,"firstPriorityApplicants":37.0,"admittants":36.5,"standbyAdmittants":0.0,"quota1Gpa":0.0,"standbyGpa":0.0},
"10242":
{"numberOfYears":2,"totalApplicants":183.0,"firstPriorityApplicants":79.5,"admittants":81.5,"standbyAdmittants":0.0,"quota1Gpa":0.0,"standbyGpa":0.0},
...
}
Мое Angular приложение ожидает массив этого интерфейса:
export interface IAveragedStatistic {
kotNumber: number;
statistics: {
numberOfYears: number;
totalApplicants: number;
firstPriorityApplicants: number;
admittants: number;
standbyAdmittants: number;
quota1Gpa: number;
standbyGpa: number;
};
}
В моем сервисе я анализирую данные следующим образом:
public getAveragedStatistics2(): Observable<IAveragedStatistic[]> {
return this.httpClient.get<IAveragedStatistic[]>('http://localhost:8080/averagedstatistics').pipe(map((data) => {
return Object.entries(data).map(([key, value]) => {
let kotNumber: number = +key;
let statistics: any = value;
return Object.assign({kotNumber, statistics});
});
}));
}
Но должен быть более умный способ сделать это, верно? Что это?
Я специально исключил обработку ошибок.