【发布时间】:2020-02-05 05:58:04
【问题描述】:
我正在尝试将 Http JSON 响应映射到 Angular / typescript 中的自定义接口。我已经尝试了几种方法,但还没有成功。 JSON 对象未正确映射到接口。地图属性保持“未定义”。如果我直接打印数据,则正确输出 JSON 数据 - 问题是我不知道如何访问它。这是我的代码:
export interface IMap<T> {
map: Map<string, Array<T>>;
}
JSON 答案如下所示。它是 Map> 在 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 });
}
在配置服务中我订阅了方法。如何正确映射 Response 以便 data 中的属性映射不是未定义的并且可以正确访问?
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 内容导入导出界面?地图属性应填充相关的值。 我很感激任何帮助! :)
【问题讨论】:
标签: json angular dictionary mapping