假设我们从后端得到以下结果:
{
idPerson:string,
name: string
}
现在我有一个打字稿类:
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"}]
我如何映射它们?
答案 0 :(得分:3)
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));