我从webAPI收到
return Ok(new List<DomainBO>() { userDomain });
我用stringyfy得到这个对象:
[
{
"id": 281,
"domainName": "MTH",
"domainTypeId": 2,
"domainTypeName": "Carrier"
}
]
在我的服务中,我是这样的:
this.httpClient.get( environment.apiUrl + this.config.getSettings()['cleard']['api']['user']['Domain'], { headers: new HttpHeaders({ 'Authorization': 'BEARER ' + this.auth.getUserSession().access_token }), responseType: 'json'}).toPromise().then(
(Domain: any) => {
console.log(typeof (Domain));
this.Domain = Domain;
console.log('domains : ' + Domain + ' this.domainID : ' + this.Domain);
});
,我在Web API中的模型类是:
public class DomainBO
{
public int Id { get; set; }
public string DomainName { get; set; }
public int DomainTypeId { get; set; }
public string DomainTypeName { get; set; }
}
为什么不能将其解析为我的有角物体?
谢谢男孩和女孩:)
答案 0 :(得分:0)
您的背景可能来自强类型语言:)
因此在TS / JS中,没有反序列化器。有一些解决方案,因此您可以反序列化,但是我会避免使用它们,因为这是不必要的。
因此,当您执行this.httpClient.get(url, (response: DomainBO) => {});
时,这不会实例化您的课程。
您需要手动手动实例化该对象:
this.httpClient.get(url, (response: any) => {
this.domain = new Domain(response.id)
});
但是,与response:any
一样,这仍然不是理想的解决方案。您可以做的是创建一个Interface
:
export interface Domain {
id: string;
}
然后您可以像使用它:
this.httpClient.get(url, (response: Domain) => {
this.domain = new Domain(response.id)
console.log('domains : ' + Domain + ' this.domainID);
});