API HTTP GET请求从服务器返回以下响应
namespace
在我的服务文件中,如果我对{
"results": [
{
"id": "206152672",
"title": "Test",
"restrictions": {},
"_expandable": {
"container": "",
"metadata": "",
"extensions": "",
"operations": "",
"children": "",
"history": "/rest/api/content/206152672/history",
"ancestors": "",
"body": "",
"version": "",
"descendants": "",
"space": "/rest/api/space/Test"
},
"_links": {
"webui": "/display/test",
"tinyui": "/x/4KNJD"
}
},
...
...
}]
}
函数执行了Observable<any>
,我可以看到正在显示的数据。
getNotes
如果我尝试将响应强制转换为我的模态,则不会显示数据。当我订阅组件时,它返回 getNotes(): Observable<any> {
return this.http.get<any>(this.url);
}
undefined
请帮助我了解如何使用返回的observable强制转换模态。
注意:-响应位于对象中,而不是数组中。
答案 0 :(得分:1)
服务器中对象的结构与您期望的(接口数组)不匹配。您得到的是对象{"results": ReleaseModal[]}
而不是数组。
因此您可以将getNotes方法的签名更改为
getNotes(): Observable<{"results": ReleaseModal[]}>
或映射get
的结果:
return this.http.get<any>(this.url).map(data => data.results);
当然还有rxjs map方法。
我认为应该没有问题,您的接口ReleaseModal
不包含响应数组中的所有属性,唯一的问题是响应不包含数组直接。