为了账号安全,请及时绑定邮箱和手机立即绑定

Angular 从 API 创建对象

Angular 从 API 创建对象

慕尼黑8549860 2021-12-02 10:39:40
我正在使用 Angular 8,我只是想从这里获取测试 JSON api:https : //jsonplaceholder.typicode.com/users并从中创建一个 User 对象数组,如下所示:export interface User {   name: string;   email: string;}我用这个得到数据: this.http.get('https://jsonplaceholder.typicode.com/users').subscribe(data => {        this.data = data;        console.log(data);        });我正在像这样创建我的数据变量:data: User[] = [];看起来数据数组没有被设置。我是否需要遍历响应中的每个对象并将其推送到数据数组?
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

有几种方法可以做到这一点:


其中之一是:使用 map 迭代数据并返回User类型的新对象


this.http.get('https://jsonplaceholder.typicode.com/users')

      .subscribe((data :any) => {

        this.users =  data.map((d: any) => {

          let user : User =  {name :d.name , email :d.email };

          return user;

        });

      });


查看完整回答
反对 回复 2021-12-02
?
慕仙森

TA贡献1827条经验 获得超7个赞

您的 API 返回的不仅仅是电子邮件和姓名:


{

    "id": 1,

    "name": "Leanne Graham",

    "username": "Bret",

    "email": "Sincere@april.biz",

    "address": {

        "street": "Kulas Light",

        "suite": "Apt. 556",

        "city": "Gwenborough",

        "zipcode": "92998-3874",

        "geo": {

            "lat": "-37.3159",

            "lng": "81.1496"

        }

    },

    "phone": "1-770-736-8031 x56442",

    "website": "hildegard.org",

    "company": {

        "name": "Romaguera-Crona",

        "catchPhrase": "Multi-layered client-server neural-net",

        "bs": "harness real-time e-markets"

    }

}

因此,我可能会将您的数据映射到每个属性,以便您确切地知道从输出中提取的内容:


this.data = data.map((user: any): User => {

    return {

        name: user.name, 

        email: user.email

    }

});


查看完整回答
反对 回复 2021-12-02
  • 2 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信