根据字段名称而不是类类型添加自定义Jackson序列化程序

时间:2018-09-06 22:16:38

标签: java serialization module jackson objectmapper

对于Jackson的ObjectMapper,我看过一些自定义对象序列化器的示例,如下所示:

objectMapper.registerModule(new SimpleModule().addSerializer(MyClass.class, new MyClassSerializer()));

...

public class MyClassSerializer extends JsonSerializer<MyClass> {
    @Override
    public void serialize(MyClass value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        ...
    }
}

如果您知道要为其使用自定义序列化逻辑的类类型,则此方法非常好用。但是,我想告诉ObjectMapper在序列化期间排除任何字段,这些字段的字段名称中包含单词“ encryption”,无论其类类型如何。纵观ObjectMapper的方法,我看到许多看起来很有希望的方法...但是它们都采用类类型。有什么方法可以基于字段名称实现此自定义序列化?

另外,请不要告诉我将@JsonIngore或类似的内容放在要序列化的类本身上。这些类是自动生成的,无法进行编辑,因此,为什么要尝试找出一种在ObjectMapper自身上进行配置的方法。

0 个答案:

没有答案