gpt4 book ai didi

typescript - 使用类转换器 : Nest js 序列化嵌套对象

转载 作者:行者123 更新时间:2023-12-05 09:27:08 25 4
gpt4 key购买 nike

我正在尝试使用类转换器序列化嵌套对象。我有两个如下所示的 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

});

关于typescript - 使用类转换器 : Nest js 序列化嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72836741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com