如何将JSON数组从REST API转换为对象

时间:2018-12-30 17:05:30

标签: javascript angular typescript

我从后端收到如下消息:

[
    [
        {
            "id": 1,
            "date": "2018-12-31"
        },
        {
            "id": 12,
            "standard": null,
            "capacity": 7,
            "description": null,
        }
    ],
    [
        {
            "id": 26,
            "date": "2018-12-08"
        },
        {
            "id": 11,
            "standard": null,
            "capacity": 7,
            "description": null,
        }
    ]
]

我想将此响应映射到2个对象的列表,所以我创建了类:

export class Response {

  id: string;
  date: string;
  standard: string;
  capacity: number;
  description: string;
}

我是我的方法,在调用服务时尝试了不同的方法,甚至backendData.forEach也无法正常工作-Angular无法将backendData识别为数组。

getData(){
    this.service.getData().subscribe(backendData=>{
      //how to convert  backendData to an array of Response[]?
    })
  }

我将非常感谢我在此期间遇到的每一次帮助。

1 个答案:

答案 0 :(得分:0)

也许有帮助

getData(){
    this.service.getData().subscribe(backendData=> {
        //how to convert  backendData to an array of Response[]?
        return backendData.map(array => Object.assign(array[0], array[1]))
    })
}

我不确定您是否真的可以将这个数组转换为Response类型,因为您的id是字符串,但是作为响应,您得到了数字,还得到了可空的description和{{1} }作为回应