我有以下JSON数据
{
"columns": [
{
"table": "black_list",
"name": "id",
"datatype": "uuid"
},
{
"table": "black_list",
"name": "emailid",
"datatype": "varchar"
},
{
"table": "black_list",
"name": "membershipid",
"datatype": "varchar"
},
{
"table": "black_list",
"name": "phonenumber",
"datatype": "varchar"
}
],
"rows": [
{
"id": "59525ac0-9799-11e8-8ea0-897582b5513d",
"emailid": "bid@email.com",
"membershipid": "999999",
"phonenumber": "1234567890"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的模型是
export interface BlacklistData {
id: string;
emailid: string;
membershipid: string;
phonenumber: string;
}
Run Code Online (Sandbox Code Playgroud)
最后我使用下面的代码从REST API中获取结果,并尝试将其映射到我的对象
public GetBlackListData(): Observable<WatchlistData[]> {
var path = "http://ec2compute/BDEServices/RestSearch?selectCls=all&fromCls=demo.black_list";
return this.http.get(path)
.pipe(map((result: Response) => this.BlackListData = result.json()));
}
Run Code Online (Sandbox Code Playgroud)
我只想使用JSON数据的行部分来映射到我的对象,但是我不确定如何做到这一点。有人可以告诉我如何选择性地解析JSON数据并将其映射到我的对象。
我正在使用Angular 6并从'rxjs / internal / Observable'导入{Observable};
谢谢
只需从组件中订阅您的服务方法即可,
this.yourService.GetBlackListData().subscribe(result => this.result =result.rows);
Run Code Online (Sandbox Code Playgroud)
您的模型应如下所示,
export interface Column {
table: string;
name: string;
datatype: string;
}
export interface Row {
id: string;
emailid: string;
membershipid: string;
phonenumber: string;
}
export interface BlacklistData {
columns: Column[];
rows: Row[];
}
Run Code Online (Sandbox Code Playgroud)