如何从Angular 6的[对象对象],[对象对象]中的JSON响应访问值

时间:2019-04-24 17:53:18

标签: json angular angular6

我有一个JSON响应,下面是我的响应。

{
    "data": [
        {
            "2": [
                {
                    "name": "Test1",
                    "Address": "Test2"
                },

            ]
        },
         {
            "5": [
                {
                    "name": "Test3",
                    "Address": "Test4"
                },

            ]
        },


    ]
}

我可以访问直到响应中的数据为止。这里的日期为“ 2”和“ 5”。如果此json响应中存在一个日期,则必须为该响应获取名称和地址 但是我必须显示数据列表。

<div *ngFor = "let data of result">
<span>{{data.name}}</span>
<span>{{data.Address}}</span>
</div>

在ts文件中,

 let result = response.data;

我想从中访问姓名和地址。任何人都可以帮助我该怎么做。

1 个答案:

答案 0 :(得分:3)

您可以使用Object.keymapconcat函数来像这样平整数据

let obj = this.result;
this.result = Object.keys(obj).map(function (key) {   
  let objkey = obj[key];
  let first = Object.keys(objkey)[0]
  return obj[key][first];
});

this.result = [].concat.apply([], this.result);

演示在https://stackblitz.com/edit/angular-flat-array-property

已更新:

我使用过滤器更新演示以按日期应用过滤器。

    let obj = this.result;
    var filter = '5';
    this.result = Object.keys(obj).map(function (key) {
      let objkey = obj[key];
      let first = Object.keys(objkey)[0]
      if(filter == first){
         return obj[key][first];
      }else{
        return null;
      }

    });

    this.result = [].concat.apply([], this.result.filter(c=>c != null));