我正在尝试使用类转换器序列化嵌套对象。我有两个如下所示的 dto。当我尝试使用 plainToClass
进行序列化时,嵌套对象会从输出中移除。只获取父对象的数据。
用户dto:
export class UserDto extends AbstractDto {
@Expose()
email: string;
@Expose()
first_name: string;
@Expose()
last_name: string;
@Expose()
profile: ProfileDto
}
简介dto:
export class ProfileDto extends AbstractDto {
@Expose()
date_of_birth: string;
@Expose()
address: string;
@Expose()
pincode: string;
}
序列化器:
const serialized = plainToClass(UserDto, user, {
excludeExtraneousValues: true,
});
预期输出:
{
email:'a@gmail.com',
first_name: 'test',
last_name: 'test',
profile: {
date_of_birth: '',
address: '',
pincode: ''
}
}
最佳答案
我在这里找到了答案Link .如果我添加 enableImplicitConversion: true
以及 @Type
装饰器,那么它会按预期工作。
export class UserDto extends AbstractDto {
@Expose()
email: string;
@Expose()
first_name: string;
@Expose()
last_name: string;
@Expose()
@Type(() => ProfileDto)
profile: ProfileDto
}
序列化器:
const serialized = plainToClass(UserDto, user, {
excludeExtraneousValues: true,
enableImplicitConversion: true
});
https://stackoverflow.com/questions/72836741/