这种事就交给前端吧,后端返回 “优秀” 这个中文不太好的,我写过一个 npm 包,很优雅~~
硬要在后端转,估计也有类似的包,没有就自己写一个
https://www.npmjs.com/package/class-converterimport { property, typed, deserialize, toClass, toPlain } from 'class-convert';
class GradesModel {
@
deserialize(val => (val >= 90 ? '优秀' : '普通'))
@
property()
math: string;
}
class JsonResponse {
@
deserialize(val => val.absent)
@
property('examinationStatus')
isAbsent: boolean;
@
typed(GradesModel)
@
property()
grades: GradesModel;
}
const model = toClass(
{
examinationStatus: {
absent: false,
noAbsent: true,
},
grades: {
math: 90,
},
},
JsonResponse,
);
// {"isAbsent":false,"grades":{"math":"优秀"}}
console.log(model);