有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jackson无法将字符串反序列化到JodaTime

我正在使用Spring Boot 1.5.6和Jackson 2.8.8。当反序列化REST呼叫的应答时,Jackson失败,出现以下异常:

JSON parse error: Can not construct instance of org.joda.time.DateTime: no String-argument constructor/factory method to deserialize from String value ('2018-03-19T12:05:21.885+01:00')

确实没有字符串构造函数,只有DateTime对象中的对象构造函数

我在构建中包含了jackson-datatype-joda依赖项。格雷德尔档案。这些是构建中的相应行。格拉德尔:

compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: jacksonVersion
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: jacksonVersion
compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: jacksonVersion
compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-hibernate5', version: jacksonVersion
compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-joda', version: jacksonVersion

是否需要进行其他配置

PS:如果我将日期字符串放入new DateTime("2018-03-19T12:05:21.885+01:00")中,它就可以正常工作

有什么想法吗?干杯


共 (2) 个答案

  1. # 1 楼答案

    当我在build中添加以下依赖项时,它对我起到了作用。格拉德尔

    编译组:com。fasterxml。杰克逊。数据类型,名称:“jackson数据类型joda”

  2. # 2 楼答案

    您是否在ObjectMapper中注册了JodaModule模块

    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new JodaModule());