У меня есть этот интерфейс
export interface Student {
cf: string,
firstName: string,
lastName: string,
dateOfBirth: Date,
description?: string,
enrollmentDate?: Date
}
Я хочу заполнить массив студентов запросом http get , который возвращает следующее json для каждого студента
{cf: "blablabla", first_name: "Mario", last_name: "Rossi", date_of_birth: "1998-01-24", enrollment_date: "2019-03-20" },
Как видите, интерфейс имеет разные имена из ответа ( firstName вместо first_name ), поэтому при выводе на консоль имен студентов get undefined .
Это сервисная функция, из которой я получаю данные
getStudents(): Observable<Student[]> {
return this.httpClient.get<Student[]>(this.studentsUrl, this.baseService.httpOptions);
}
А вот мой компонент студентов
export class StudentsComponent implements OnInit {
students: Student[];
childIcon = faChild;
plusIcon = faPlus;
private _newStudent: boolean = false;
constructor(private studentsService: StudentsService) { }
ngOnInit(): void {
this.studentsService.getStudents().subscribe(
(result: Student[]) => {
this.students = result;
this.students.forEach(student => console.log(student));
},
error => console.log(error)
)
}
}
Есть ли способ преобразовать ответ json в мой интерфейс Student? Несколько ответов о переполнении стека предполагают, что map является подходящим способом, но я не понимаю, как использовать этот оператор alog с subscribe