java – 尝试解析json时的NoSuchFieldError“ADJUST_DATES_TO_CO
发布时间:2020-12-15 02:19:10 所属栏目:Java 来源:网络整理
导读:我想使用jackson将包含日期的json字符串转换为jodaTime的DateTime.不幸的是我收到了这个错误 java.lang.NoSuchFieldError: ADJUST_DATES_TO_CONTEXT_TIME_ZONE json对象如下所示: {"add_time": "2017-04-26 14:26:58",} 我在我的pom.xml中包含了joda time和
我想使用jackson将包含日期的json字符串转换为jodaTime的DateTime.不幸的是我收到了这个错误
java.lang.NoSuchFieldError: ADJUST_DATES_TO_CONTEXT_TIME_ZONE json对象如下所示: { "add_time": "2017-04-26 14:26:58",} 我在我的pom.xml中包含了joda time和jackson: <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9.9</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-joda</artifactId> <version>${jackson.version}</version> </dependency> 杰克逊版本是2.8.8. ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JodaModule()); 有谁知道问题可能是什么?我现在坚持了几个小时.我也试过禁用DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE,但它没有帮助. 解决方法
您需要指定自定义日期时间格式,因为JSON中的格式不是杰克逊所期望的格式.您可以通过字段或setter方法上的@JsonFormat注释轻松完成此操作(无需禁用ADJUST_DATES_TO_CONTEXT_TIME_ZONE).例如.
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") DateTime addTime; 您的示例中的日期将被解析为2017-04-26T14:26:58.000Z.顺便说一下,杰克逊期望的默认格式. 如果您不想添加注释但是更复杂,您可以查看自定义反序列化器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |