Java 如何配置Jackson将一种类型的所有字段转换为另一种类型?

Java 如何配置Jackson将一种类型的所有字段转换为另一种类型?,java,jackson,Java,Jackson,如果我有一个类型为a的POJO字段,我希望将其序列化为类型为B,我可以使用一对转换器轻松实现这一点: @JsonSerialize(converter=ConvA2B.class) @JsonDeserialize(converter=ConvB2A.class) private A field; 但是,如果我希望所有POJO中的所有类型的字段都像这样处理,该怎么办?是否有全局转换器配置 为了提供一点上下文,我正在尝试使用自定义类型转换器将每个字段转换为java.time.Instant,

如果我有一个类型为
a
的POJO字段,我希望将其序列化为类型为
B
,我可以使用一对
转换器轻松实现这一点:

@JsonSerialize(converter=ConvA2B.class)
@JsonDeserialize(converter=ConvB2A.class)
private A field; 
但是,如果我希望所有POJO中的所有类型的字段都像这样处理,该怎么办?是否有全局转换器配置


为了提供一点上下文,我正在尝试使用自定义类型转换器将每个字段转换为
java.time.Instant
,例如:

public static class Conv extends StdConverter<LocalDateTime, Instant> {

    @Override
    public Instant convert(LocalDateTime value) {
        return value.toInstant(ZoneOffset.UTC);
    }

}
公共静态类Conv扩展StdConverter{
@凌驾
公共即时转换(LocalDateTime值){
返回值.toInstant(ZoneOffset.UTC);
}
}

您可以配置Jackson使用的
ObjectMapper
。通常,您可以配置序列化某些类型的方式。对于您的具体问题,您可以尝试以下方法:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;

...

private ObjectMapper createObjectMapper() {
    final ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new JavaTimeModule());
    mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    return mapper;
}
现在,根据您的应用程序设置,您需要在某处插入/提供/配置对象映射器