使用Jackson JSON映射器序列化/反序列化java 8 java.time [英] serialize/deserialize java 8 java.time with Jackson JSON mapper

查看:412
本文介绍了使用Jackson JSON映射器序列化/反序列化java 8 java.time的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将Jackson JSON映射器与Java 8 LocalDateTime一起使用?

How do I use Jackson JSON mapper with Java 8 LocalDateTime?


org.codehaus.jackson.map.JsonMappingException:无法实例化来自JSON String的类型[simple type,class java.time.LocalDateTime]的值;没有单字符串构造函数/工厂方法(通过引用链:MyDTO [field1] - > SubDTO [date])

org.codehaus.jackson.map.JsonMappingException: Can not instantiate value of type [simple type, class java.time.LocalDateTime] from JSON String; no single-String constructor/factory method (through reference chain: MyDTO["field1"]->SubDTO["date"])


推荐答案

这里不需要使用自定义序列化器/反序列化器。使用 jackson-modules-java8的日期时间模块

There's no need to use custom serializers/deserializers here. Use jackson-modules-java8's datetime module:


数据类型模块让杰克逊认识到Java 8 Date&时间API数据类型(JSR-310)。

Datatype module to make Jackson recognize Java 8 Date & Time API data types (JSR-310).

此模块增加了对很多类的支持:


  • 持续时间

  • 即时

  • LocalDateTime

  • LocalDate

  • LocalTime

  • MonthDay

  • OffsetDateTime

  • OffsetTime

  • 期间


  • YearMonth

  • ZonedDateTime

  • ZoneId

  • ZoneOffset

  • Duration
  • Instant
  • LocalDateTime
  • LocalDate
  • LocalTime
  • MonthDay
  • OffsetDateTime
  • OffsetTime
  • Period
  • Year
  • YearMonth
  • ZonedDateTime
  • ZoneId
  • ZoneOffset

这篇关于使用Jackson JSON映射器序列化/反序列化java 8 java.time的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆