在 Angular 7 中将一个对象转换为另一个对象
Convert one object to another in Angular 7
我正在使用 Angular 7,我正在将所有详细信息输入 const fieldErrors = error.error.fieldErrors;
0:
code: "Size"
field: "studentName"
message: "Length of characters should be between 1 to 255"
resource: "studentDto"
__proto__: Object
1:
code: "NotBlank"
field: "studentName"
message: "Program Name is mandatory"
resource: "studentDto"
__proto__: Object
2:
code: "NotBlank"
field: "studentDesc"
message: "Student Description is mandatory"
resource: "studentDto"
__proto__: Object
length: 3
我想把它转换成
ServerResponse = {
"studentName" {
"Program Name is mandatory"
},
studentDesc {
"Student Description is mandatory"
}
}
您可以遍历 fieldErrors 数组并将每个字段和消息分配给 ServerResponse 对象。
试试下面的代码:
let ServerResponse:any = {};
fieldErrors.forEach(item => {
ServerResponse[item.field] = item.message;
});
ServerResponse = errors.reduce((result, cur) => (result[cur.field] = cur.message, result), {});
但是您将丢失具有相同字段的项目属性
您可能希望将其转换为 json,每个字段都是一个数组,如下所示:
ServerResponse = {
studentName: [
"Length of characters should be between 1 to 255",
"Program Name is mandatory"
],
studentDesc: [
"Student Description is mandatory"
]
}
这样,同一个字段的多个错误信息可以放入同一个键中。
您可以遍历 fieldErrors
数组并手动分配值。
let ServerResponse = {};
fieldErrors.forEach(fieldError => {
if (ServerResponse[fieldError.field]) {
ServerResponse[fieldError.field].push(fieldError.message);
} else {
ServerResponse[fieldError.field] = fieldError.message;
}
});
如果该字段已存在于 ServerResponse
中,则您正在将邮件添加到列表中。如果该字段不存在,请创建一个新条目。
我正在使用 Angular 7,我正在将所有详细信息输入 const fieldErrors = error.error.fieldErrors;
0:
code: "Size"
field: "studentName"
message: "Length of characters should be between 1 to 255"
resource: "studentDto"
__proto__: Object
1:
code: "NotBlank"
field: "studentName"
message: "Program Name is mandatory"
resource: "studentDto"
__proto__: Object
2:
code: "NotBlank"
field: "studentDesc"
message: "Student Description is mandatory"
resource: "studentDto"
__proto__: Object
length: 3
我想把它转换成
ServerResponse = {
"studentName" {
"Program Name is mandatory"
},
studentDesc {
"Student Description is mandatory"
}
}
您可以遍历 fieldErrors 数组并将每个字段和消息分配给 ServerResponse 对象。
试试下面的代码:
let ServerResponse:any = {};
fieldErrors.forEach(item => {
ServerResponse[item.field] = item.message;
});
ServerResponse = errors.reduce((result, cur) => (result[cur.field] = cur.message, result), {});
但是您将丢失具有相同字段的项目属性
您可能希望将其转换为 json,每个字段都是一个数组,如下所示:
ServerResponse = {
studentName: [
"Length of characters should be between 1 to 255",
"Program Name is mandatory"
],
studentDesc: [
"Student Description is mandatory"
]
}
这样,同一个字段的多个错误信息可以放入同一个键中。
您可以遍历 fieldErrors
数组并手动分配值。
let ServerResponse = {};
fieldErrors.forEach(fieldError => {
if (ServerResponse[fieldError.field]) {
ServerResponse[fieldError.field].push(fieldError.message);
} else {
ServerResponse[fieldError.field] = fieldError.message;
}
});
如果该字段已存在于 ServerResponse
中,则您正在将邮件添加到列表中。如果该字段不存在,请创建一个新条目。