首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从Angular 6中的[object Object]、[object Object]中的JSON响应中获取值

如何从Angular 6中的[object Object]、[object Object]中的JSON响应中获取值
EN

Stack Overflow用户
提问于 2019-04-25 01:53:18
回答 1查看 142关注 0票数 1

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

代码语言:javascript
复制
{
    "data": [
        {
            "2": [
                {
                    "name": "Test1",
                    "Address": "Test2"
                },

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

            ]
        },


    ]
}

我能够访问来自响应的数据。这里的"2“和"5”是date.If one date存在于此json响应中,那么对于该响应,我必须获取名称和地址,但我必须显示数据列表。

代码语言:javascript
复制
<div *ngFor = "let data of result">
<span>{{data.name}}</span>
<span>{{data.Address}}</span>
</div>

在ts文件中,

代码语言:javascript
复制
 let result = response.data;

我想从this.Can访问姓名和地址,任何人请帮助我如何做到这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-25 02:53:37

您可以使用Object.keymapconcat函数来扁平化数据,如下所示

代码语言:javascript
复制
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上演示

更新:

我用过滤器更新了演示,以便按日期应用您的过滤器。

代码语言:javascript
复制
    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));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55835902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档