jackson jsr310中缺少java ZoneDateTimeDeserializer
我正在解析一个ZonedDateTime
,使用如下方式:
@JsonSerialize(using = ZonedDateTimeSerializer.class)
private ZonedDateTime expirationDateTime;
我需要能够正确地反序列化这个日期。但是,jackson没有为此提供反序列化程序:
com.fasterxml.jackson.datatype.jsr310.deser
它不见了有什么原因吗?最常见的解决方法是什么
更新了: 以下是我的设想:
我创建ZonedDateTime
如下:
ZonedDateTime.of(2017, 1, 1, 1, 1, 1, 1, ZoneOffset.UTC)
然后我序列化包含日期的对象,如下所示:
public static String toJSON(Object o) {
ObjectMapper objectMapper = new ObjectMapper();
StringWriter sWriter = new StringWriter();
try {
JsonGenerator jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(sWriter);
objectMapper.writeValue(jsonGenerator, o);
return sWriter.toString();
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
当我尝试将其发送到Spring MVC控制器时:
mockMvc.perform(post("/endpoint/")
.content(toJSON(myObject))
.contentType(APPLICATION_JSON))
.andExpect(status().isOk());
控制器中的日期对象不同
之前:2017-01-01T01:01:01.000000001Z
之后:2017-01-01T01:01:01.000000001Z[UTC]
# 1 楼答案
我用这个: