日期格式如何映射到JSON Jackson?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (60)

我有一个来自API的日期格式,如下所示:

"start_time": "2015-10-1 3:00 PM GMT+1:00"

这是YYYY-DD-MM HH:MM am / pm GMT时间戳。我将这个值映射到POJO中的Date变量。显然,它显示转换错误。

我想知道2件事情:

  1. 我需要用什么格式来与杰克逊进行转换?日期是一个很好的字段类型吗?
  2. 一般来说,有没有办法在变量被Jackson映射到Object成员之前处理变量?就像改变格式,计算等等
提问于
用户回答回答于

我需要用什么格式来与jackson进行转换?日期是一个很好的字段类型吗?

Date这是一个很好的字段类型。你可以很容易地使用JSON解析ObjectMapper.setDateFormat

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm a z");
myObjectMapper.setDateFormat(df);

一般来说,有没有办法在变量被Jackson映射到Object成员之前处理变量?就像改变格式,计算等等

是。有几个选项,包括实施自定义JsonDeserializer,例如扩展JsonDeserializer<Date>是一个好的开始。

用户回答回答于

由于Jackson v2.0,你可以直接在Object成员上使用@JsonFormat注解;

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm a z")
private Date date;

扫码关注云+社区