我们在整个应用程序中使用Jackson来将Java对象序列化和反序列化为JSON,效果非常好。
是否可能(也许通过自定义序列化程序)只序列化使用自定义注解注解的Java对象的属性?
因此,给定自定义注解:
public @interface SpecialField {}
和下面的bean
public SomeBean {
@SpecialField
private Object propertyIncluded;
private Object propertyExcluded;
}
自定义序列化器(或某种等效机制)序列化propertyIncluded(使用常规的Jackson对象Map器)并忽略propertyExcluded会是什么样子?
在这个用例中,我们不能使用标准的Jackson注解(@JsonIgnore),因为它会破坏应用程序中的其他序列化用例。
1条答案
按热度按时间6tdlim6h1#
虽然这可能不是你想要的,但是通过一些调整,可以使Jackson引擎以不同的方式序列化对象。在下面的例子中,我创建了两种类型的序列化器,它们将或不将标记为transient的字段序列化。
输出:
我认为更改序列化程序以扩展JsonSerializer类并在其中执行类似的操作是相当容易的。