【问题标题】:Jackson ObjectMapper serializing local date into a long striingJackson ObjectMapper 将 localdate 序列化为长字符串
【发布时间】:2021-05-20 20:41:32
【问题描述】:

我正在尝试使用 jackson Objectmapper 序列化我的 myBeanObject。 这就是我所拥有的:

Objectmapper m= new Objectmapper()
m.setdateFormat(new SimpledateFormat("yyyy-MM-dd")); 
String json = m.writeValueAsString(myBeanObject);

问题是我的 bean 中的 LocalDate 变量被序列化为一个长字符串,类似于 {"year":1970,"month":"JANUARY"...}

我希望 LocalDate 变得像“1970-01-01”一样简单

有人可以帮忙吗?

【问题讨论】:

  • “myBeanObject”几点了?
  • 只需删除m.setdateFormat(new SimpledateFormat("yyyy-MM-dd"));。无论如何,LocalDate 属于现代日期时间 API,如果需要,需要使用DateTimeFomatter 对其进行格式化。 LocalDate#toString() 的默认格式为yyyy-MM-dd

标签: java localdate


【解决方案1】:

尝试添加这个依赖:

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.8.6</version>
</dependency>

然后如下设置你的ObjectMapper

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 2020-05-20
    • 2018-03-17
    • 2015-10-25
    • 2018-09-29
    • 2021-05-11
    • 2018-07-24
    相关资源
    最近更新 更多