如何仅为字段添加序列化程序而不为类本身添加序列化程序

时间:2018-04-24 16:47:18

标签: java jackson jackson2 jackson-dataformat-csv

我有一个名为AbstractEntity的基础JPA实体,其属性为code,我还有大量其他JPA实体(ProductEntityCategoryEntityUserEntity等),每个都从AbstractEntity延伸。

现在有些实体引用了其他实体,例如CategoryEntity有一个名为parentCategory的属性,或者ProductEntity有一个类别集合(categories)。< / p>

现在我想让杰克逊序列化ProductEntity,但每当属性类型为AbstractEntity时,我希望它只打印code而不打印任何其他内容。

我的解决方案是为Serializer添加自定义AbstractEntity,但您可能会认为ProductEntity也是AbstractEntity,所以每当我说objectMapper.writeValueAsString(product)时我只得到code。而我想要的是:

{
 code: 'abc',
 category : 'categoryA',
 price : '12 $',
 active : true
}

有没有办法告诉jackson仅将自定义序列化程序用于字段而不是对象本身? 顺便说一下,我无法真正使用注释,因为我无法访问代码,就像我说这些类真的很多。

0 个答案:

没有答案
相关问题