首页 > 解决方案 > Angular将json转换为对象数组

问题描述

我从一个 REST Web 服务获取以下 JSON 数据。我想弄清楚如何转换为对象数组。

{
   "John": "Buttler"
   "Hugh": "Martin"
    .
    .
    .
}

我正在尝试转换为以下对象。基本上我期待Person []。在上面的 JSON 中,John、Hugh 是名字,而 Buttler、Martin 是姓氏。

export class Person{
    firstName: string;
    lastName: string;
}

如果我得到如下的json,我可以转换

[
{
   "firstName": "John"
   "lastName:: "Buttler"
},
{
   "firstName": "Hugh"
   "lastName:: "Martin"
}
]

角服务代码:

  findAllPersons(): Observable<Person[]> {
    return this.httpClient.get<Person[]>('url');
  }

标签: arraysjsonangulartypescript

解决方案


您必须以所需格式处理收到的响应。

      findAllPersons(): Observable<Person[]> {
        return this.httpClient.get<object>('url');
      }
    
    
     findAllPersons().subscribe((response) =>{
        let array = [];
        for(let key in response){
            let p = new Person();
            p.firstName = key;
            p.lastName = response[key];
            array.push(p);
        } 
        console.log(array); // your required array
     });

推荐阅读