假设我们从后端得到以下结果:

{
    idPerson:string,
    name: string
}

现在我有一个typescript类:
class Option {
    id: string;
    text: string;
}

所以,后台给了我以下信息:
"[{idperson: "1", name: "foo"}, {idperson:"2", name:"bar"}]"

当我从一个角度http请求接收到答案时,我正在执行以下操作:
let options: any[] = [];
options = JSON.parse(response);

所以它给了我:
[{idperson: "1", name: "foo"}, {idperson:"2", name:"bar"}]

但我真的想把密钥从后端映射到前端,并获得:
[{id: "1", text: "foo"}, {id:"2", text:"bar"}]

我如何绘制它们?

最佳答案

let options: Option[];
options = JSON.parse(response).map(item => ({
  id: item.idPerson,
  text: item.name
}));

如果您不需要option类中的任何方法,我将创建一个接口。
interface Option {
  id: string;
  text: string;
}

let options: Option[];
options = JSON.parse(response).map(item => ({
  id: item.idPerson,
  text: item.name
}));

如果您确实需要option类上的方法:
class Option {
  constructor(public id: string, public text: string) {}

  public doSomething() {
    console.log(this.id)
  }
}

let options: Option[];
options = JSON.parse(response).map(item => new Option(item.idPerson, item.name));

关于json - 将后端的属性映射到前端的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40362033/

10-11 11:31