Java 日期格式映射到JSON Jackson

发布于 2021-02-02 22:49:13

我有来自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成员之前对其进行处理?诸如更改格式,计算等。
关注者
0
被浏览
77
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    与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>。这是一个好的开始。



  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

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

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


推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看