Я пытаюсь сопоставить Http JSON Response с пользовательским интерфейсом в Angular / typcript. Я пробовал это несколькими способами, но еще не сделал это. Объект JSON неправильно сопоставлен с интерфейсом. Атрибут карты остается "неопределенным". Если я печатаю данные напрямую, данные JSON выводятся правильно - проблема в том, что я не знаю, как получить к ним доступ. Вот мой код:
export interface IMap<T> {
map: Map<string, Array<T>>;
}
Ответ в формате JSON выглядит следующим образом. Это Карта <Строка, Список <? >> в Java.
{
"somenumbers": [
20,
40
],
"somemorenumbers": [
71,
111
]
}
Теперь я попытался отобразить это следующим образом:
public getValues(
paramList: Array<string>
): Observable<IMap<any>> {
const url = `url`;
let params = new HttpParams();
for (let s of paramList) {
params = params.append("params", s);
}
return this.http.get<IMap<any>>(url, { params });
}
В configservice я подписываюсь на Метод. Как правильно отобразить Ответ, чтобы карта атрибутов в данных не была неопределенной и к ней можно было правильно обращаться?
this.configService
.getValues(["somenumbers", "somemorenumbers"])
.subscribe((data: IMap<any>) => {
//outputs the JSON Data as Object{somenumbers: Array(2), somemorenumbers: Array(2), map: Map(0)}
console.error(data);
console.error(data.map);//map is undefined => ERROR
});
Как видите, атрибут карты не определен. Это просто «карта: карта (0)». Теперь ... - Как я могу получить материал JSON в интерфейс экспорта? Атрибут карты должен быть заполнен соответствующими значениями. Я ценю любую помощь! :)