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

hoà*_*iên 4 serialization node.js typescript nestjs class-transformer

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

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

当我打电话时classToPlain,我希望将属性name序列化为name_column

classToPlain(myEntity)
// returns: {name: 'my name'}
// should be: {name_column: 'my name'}
Run Code Online (Sandbox Code Playgroud)

Kim*_*ern 11

您使用json-typescript-mapper而不是class-transformerNest.js 本身支持的 是否有具体原因?


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

@Expose({ name: "name_column" })
name: string;
Run Code Online (Sandbox Code Playgroud)

对于序列化,您只需使用 来注释您的控制器类或单个方法即可@UseInterceptors(ClassSerializerInterceptor)。使用注释,它将自动序列化您从控制器方法返回的所有实体。您可以在此线程中阅读更多相关内容。