Jackson 将 String 反序列化为 Joda-Time 失败
Jackson fails on deserializing String to Joda-Time
我正在使用 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
对象中确实没有 String 构造函数,只有一个 Object 构造函数。
我在 build.gradle 文件中包含了 jackson-datatype-joda
依赖项。这些是 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")
它工作正常。
有什么想法吗?干杯!
您是否在 ObjectMapper
中注册了 JodaModule
模块?
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());
当我在 build.gradle
中添加以下依赖项时,它对我有用
编译组:'com.fasterxml.jackson.datatype',名称:'jackson-datatype-joda'
我正在使用 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
对象中确实没有 String 构造函数,只有一个 Object 构造函数。
我在 build.gradle 文件中包含了 jackson-datatype-joda
依赖项。这些是 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")
它工作正常。
有什么想法吗?干杯!
您是否在 ObjectMapper
中注册了 JodaModule
模块?
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());
当我在 build.gradle
中添加以下依赖项时,它对我有用编译组:'com.fasterxml.jackson.datatype',名称:'jackson-datatype-joda'