我有一个来自 API 的日期格式,如下所示:
"start_time": "2015-10-1 3:00 PM GMT+1:00"
这是 YYYY-DD-MM HH:MM am/pm GMT 时间戳。我将此值映射到 POJO 中的日期变量。显然,它显示转换错误。
我想知道两件事:
我需要使用什么格式与 Jackson 进行转换?Date 是一个很好的字段类型吗?
Date是一个很好的字段类型。您可以使用以下方法非常轻松地使 JSON 可解析ObjectMapper.setDateFormat:
Date
ObjectMapper.setDateFormat
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm a z"); myObjectMapper.setDateFormat(df);
一般来说,有没有办法在杰克逊将变量映射到对象成员之前对其进行处理?比如改变格式、计算等。
是的。您有几个选择,包括实现自定义JsonDeserializer,例如扩展JsonDeserializer<Date>。这是一个好的开始。
JsonDeserializer
JsonDeserializer<Date>