【问题标题】:How to ignore a variable in JSON data in Angular TypeScript如何在 Angular TypeScript 中忽略 JSON 数据中的变量
【发布时间】:2019-08-26 07:25:36
【问题描述】:

我在读取 Angular 7 中的 JSON 文件时遇到问题。

以下是我的 JSON 数据文件的格式。

[
   {
      "attributes":  {
        "User": "jay"
    }
},
   {
      "attributes": {
        "User": "roy"
    }
},
    {
      "attributes":{
        "User": "kiya"
    }
},
    {
      "attributes":{
        "User": "gini"
    }
},
   {
      "attributes": {
        "User": "rock"
    }
},
   {
      "attributes": {
        "User": "joy"
    }
}

]

这是我为 JSON 文件调用服务的 component.ts 文件方法。

        this.rest.getUsers().subscribe((data: {}) => {
            console.log(data);
            this.items = data;
            //this.items=data;
        });

这是我的 service.ts 文件方法。

 private extractData(res: Response) {
  let body = res;
  return body || { };
}

getUsers():Observable<any> {
    return this.httpService.get('./assets/usersdetails.json').pipe(
    map(this.extractData));
}

现在我想从 JSON 文件中仅读取 User,并且我想过滤单词 attributes。有没有办法从 JSON 文件中过滤这个东西,所以我只能得到User value。因为在我的项目中,这个 JSON 格式的 attributes 会造成问题,我想忽略或过滤它。

因为在我的应用程序中,我需要按以下格式读取 JSON。

[
    {
        "User": "jay"
    },
    {
        "User": "roy"
    },
    {
        "User": "kiya"
    },
    {
        "User": "gini"
    },
    {
        "User": "rock"
    },
    {
        "User": "joy"
    }

]

但数据的格式与上述 JSON 格式相同,attributes

那么有什么方法可以在阅读时从 JSON 中过滤掉多余的 attributes 内容。

【问题讨论】:

    标签: json angular typescript angular7


    【解决方案1】:

    您没有显示extractData 方法的代码,因此很难说那里没有工作,但您应该能够通过以下方式实现您的目标。

    return this.httpService
               .get('./assets/usersdetails.json')
               .pipe(
                 map(data => data.map(d => d.attributes))
               );
    

    如果“属性”上还有其他属性,而您真的只想要“用户”数据,那么您可以进一步将代码更新为:

    return this.httpService
               .get('./assets/usersdetails.json')
               .pipe(
                 map(data => data.map(d => ({ 'User': d.attributes.User })))
               );
    

    【讨论】:

    • 您好,感谢您的回复,但它给出的错误是 - 错误 TS2339:“对象”类型上不存在属性“地图”。
    猜你喜欢
    • 2017-03-13
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    相关资源
    最近更新 更多