如何使用 toJSON 更改序列化实体的 属性 名称?

How can I change the property name of a serialized entity with toJSON?

我想序列化一个 属性,其名称与实体中的名称不同。

@Entity()
export class MyEntity {
  // This should be serialized with name_column in JSON
  @Column()
  name: string
}

当我调用 classToPlain 时,我希望将 属性 name 序列化为 name_column:

classToPlain(myEntity)
// returns: {name: 'my name'}
// should be: {name_column: 'my name'}

您使用 json-typescript-mapper 而不是 nest.js 原生支持的 是否有特定原因?


使用 class-transformer,您可以使用 @Expose 更改列的名称:

@Expose({ name: "name_column" })
name: string;

对于序列化,您可以只用 @UseInterceptors(ClassSerializerInterceptor) 注释您的控制器 class 或单独的方法。使用注释,它会自动序列化所有实体,您从控制器方法return。您可以在 .

中阅读更多相关信息