От моего бэкэнда я получаю такое сообщение:
[
[
{
"id": 1,
"date": "2018-12-31"
},
{
"id": 12,
"standard": null,
"capacity": 7,
"description": null,
}
],
[
{
"id": 26,
"date": "2018-12-08"
},
{
"id": 11,
"standard": null,
"capacity": 7,
"description": null,
}
]
]
Я хочу сопоставить этот ответ со списком из двух объектов, поэтому я создал класс:
export class Response {
id: string;
date: string;
standard: string;
capacity: number;
description: string;
}
В моем методе, где я вызываю службу, я пробовал разные методы, и даже backendData.forEach не работает - Angular не распознает backendData как массив.
getData(){
this.service.getData().subscribe(backendData=>{
//how to convert backendData to an array of Response[]?
})
}
Я буду очень благодарен за любую помощь, с которой я застрял в этом пару раз.
Хорошо, такой быстрый вопрос, как выглядит backendData? Я имею в виду, что ответ выглядит как массив, содержащий массив объектов?
Каким должен быть результат?
Вы должны зарегистрировать backendData и проверить, что вы получаете, я думаю, что это объект ответа, поэтому вы получите массив из тела ответа, такого как backendData.body, и вам также нужно его проанализировать, поэтому сначала зарегистрируйте его



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Может это поможет
getData(){
this.service.getData().subscribe(backendData=> {
//how to convert backendData to an array of Response[]?
return backendData.map(array => Object.assign(array[0], array[1]))
})
}
Я не уверен, что вы действительно можете преобразовать этот массив в тип ответа, потому что ваш id является строкой, но в ответ вы получили номер, также вы получили в ответ обнуляемые description и standard
Преобразование данных иногда может быть очень болезненным. Я использую эту библиотеку на основе декоратора (типстек / класс-трансформер) для преобразований. У авторов также есть валидационная библиотека. Настоятельно рекомендуется.