当前位置: 首页 > 知识库问答 >
问题:

Jackson 2.3.2:在将日期格式设置为ObjectMapper的情况下反序列化日期的问题

周越泽
2023-03-14
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class JsonProvider extends JacksonJaxbJsonProvider {

   public JsonProvider() {

      ObjectMapper mapper = new ObjectMapper();
      mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
      mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
      mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
      mapper.setDateFormat("dd MMM, yyyy hh:mm:ss a";

      super.setMapper(mapper);
   }
}

如有任何帮助,我们将不胜感激。

多谢了。

共有1个答案

司徒俊健
2023-03-14

我得到了同样的错误,这解决了我的问题

Mapper.SetDateFormat(myDateFormat)

http://wiki.fasterxml.com/jacksonfaqdatehandling

 类似资料:
  • ObjectMapper不会将对象格式化为自定义对象。 波乔不在我的控制之下,所以我不能改变它。我需要序列化WS的POJO对象。POJO有(我不知道为什么,因为它的日期来自数据库)。 我使用的是Spring boot 2.1.8。释放,所以。。。我将其放入我的依赖项中: 我还在应用程序中添加了这个。特性: 在配置文件中,我在配置文件中添加了这个bean,因为尽快配置ObjectMapper以接受更

  • 问题内容: 我正在尝试使用Jackson 将ISO8601格式的日期反序列化为Java8 。我向ObjectMapper注册了JavaTimeModule,并关闭了该设置。 但是,如果尝试反序列化,它将无法正常工作,因为JavaTimeModule似乎只会反序列化具有UTC时区偏移量的日期时间(例如)。然后,我尝试使用如下注释: 像这样: 但是,这些都不起作用,我得到一个例外: 这意味着将忽略ti

  • 我正在尝试使用Jackson将ISO8601格式的日期反序列化为Java8。我向ObjectMapper注册了JavaTimeModule,并关闭了设置。 但是,如果试图反序列化将不起作用,因为JavaTimeModule似乎只会反序列化使用UTC时区偏移量格式化的日期时间(例如)。然后我尝试使用注释,如下所示: 就像这样: 然而,这两种方法都不起作用,我得到了一个例外: 这意味着timezone

  • 本文向大家介绍Json.net日期格式化设置方式,包括了Json.net日期格式化设置方式的使用技巧和注意事项,需要的朋友参考一下 Json.net默认的时间格式化后带T,不符合一般的业务要求,重新设置JSON.NET的默认日期格式化方式,代码如下: 下面看下Json.Net 使用属性定义日期的序列化格式 如果一个实体类里所有的时间即DateTime类型的字段,都处理成统一格式的话,可以使用如下方

  • 我想在获得,和。 这是一条漫长的道路: 我的问题:如何将最后一部分压缩到函数? 我想归档的内容: p/s:的含义与标准数字格式字符串相同。像C#语法:

  • 我正在尝试用自定义日期格式序列化和反序列化相当简单的对象: 在执行main方法时,我希望得到类似于: “日期”:“20151117” 20151117 但不幸的是得到了以下几点: {“日期”:“20151117”} 20151117-01-01T00:00:00.000+03:00(年份不正确) 似乎Jackson忽略了对象反序列化的@JSONFORMAT注释,并将字符串视为ISO-8601符号中