小编典典

Java 日期格式映射到JSON Jackson

java

我有来自API的Date格式,如下所示:

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

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

我想知道两件事:

  1. 与Jackson进行转换时,我需要使用哪种格式?Date是否适合此字段类型?
  2. 通常,是否有一种方法可以在Jackson将变量映射到Object成员之前对其进行处理?诸如更改格式,计算等。

阅读 420

收藏
2020-03-15

共2个答案

小编典典

与Jackson进行转换时,我需要使用哪种格式?Date是否适合此字段类型?

Date是一个很好的字段类型。你可以使用ObjectMapper.setDateFormat以下命令轻松地使JSON可解析:

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

通常,是否有一种方法可以在Jackson将变量映射到Object成员之前对其进行处理?诸如更改格式,计算等。

是。你可以选择几种方法,包括实现自定义JsonDeserializer,例如扩展JsonDeserializer<Date>。这是一个好的开始。

2020-03-15
小编典典

从Jackson v2.0开始,你可以直接在Object成员上使用@JsonFormat注释;

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