我试图将 JSON 响应的某些值映射到另一个变量,但收到一些错误“无法设置未定义的属性名称”
export interface Data
{
description: any;
name : any;
}
在主类中定义了以下数据
actionData : any;
action:Data[]=[];
getData()
{
this.spref.getNewData().subscribe(
response => {
this.actionData = response;
for(let i=0;i<this.actionData.length;i++)
{
this.action[i].name = this.actionData[i].name;
this.action[i].description = this.actionData[i].description;
}
})
},
error => {
console.log('Failure: ', error);
}
);
}
以这种格式响应 actionData
[{
description: "pqrs"
jsonType: "com.iti.dexcenter.common.object.NewData"
name: "abc"
value: "xyz"
}]
我希望动作数据以这种格式存储
[{
description: "pqrs"
name: "abc"
}]
提前致谢!
答案 0 :(得分:0)
action[i]
如果未初始化则未定义。因此,在为其设置任何属性之前,您需要对其进行初始化,如下所示:
actionData : any;
action:Data[]=[];
getData()
{
this.spref.getNewData().subscribe(
response => {
this.actionData = response;
for(let i=0;i<this.actionData.length;i++)
{
this.action[i] = {
name: this.actionData[i].name;
description: this.actionData[i].description;
}
}
})
},
error => {
console.log('Failure: ', error);
}
);
}