我将 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')
确实没有 String 构造函数,只有
DateTime
中的 Object 构造函数目的。我包括了
jackson-datatype-joda
我的 build.gradle 文件中的依赖项。这些是 build.gradle 中的相应行: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")
它工作正常。有任何想法吗?干杯!
最佳答案
你注册了JodaModule
ObjectMapper
中的模块?
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());
关于java - jackson 未能将字符串反序列化为 Joda-Time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49361152/