我正在尝试将 json 反序列化为对象,其中包含 OffsetDateTime 类型的字段:
public class Appeal {
@JsonProperty("createTime")
private OffsetDateTime createTime;
Run Code Online (Sandbox Code Playgroud)
为此,我使用 JavaTimeModule 支持配置我的 ObjectMapper:
public class JsonObjectMapper extends ObjectMapper {
private static ObjectMapper objectMapper = new JsonObjectMapper();
private JsonObjectMapper() {
objectMapper = createObjectMapper();
}
private ObjectMapper createObjectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
return objectMapper;
}
public static ObjectMapper getMapper() {
return objectMapper;
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到以下异常:
java.lang.NoSuchMethodError: 'boolean com.fasterxml.jackson.databind.SerializationConfig.hasExplicitTimeZone()'
at com.fasterxml.jackson.datatype.jsr310.ser.InstantSerializerBase.formatValue(InstantSerializerBase.java:144) ~[jackson-datatype-jsr310-2.12.1.jar!/:2.12.1]
Run Code Online (Sandbox Code Playgroud)
看起来不同 com.fasterxml 工件版本之间不兼容。尝试使用最新版本(我认为是 2.12.3)。
顺便说一句,您将此类用作单例的方式似乎有点复杂。您可以简单地将静态 objectMapper 初始化为createObjectMapper()并具有一个空构造函数,然后该类不需要扩展 ObjectMapper。
| 归档时间: |
|
| 查看次数: |
4506 次 |
| 最近记录: |