将Json映射到角度对象

SP1*_*SP1 0 angular angular6

我有以下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};

谢谢

Saj*_*ran 6

只需从组件中订阅您的服务方法即可,

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)