@JsonFormat是前后端日期格式化的注解,这个是jackson提供的工具包,实体类用的日期类是LocalDateTime,这个是jdk1.8提供的日期类,但在实际用的时候遇到的问题是前端往后端传递日期格式的字符串后端接受到数据转换为LocalDateTime后总是少8个小时,这个是时区的问题,然后就用@JsonFormat这个注解加了一个时区,但是这个时候就会报一下错误java.lang.NoSuchFieldError: ACCEPT_CASE_INSENSITIVE_VALUES,这个这个报错的地方后发现Feature枚举类确实没有这个ACCEPT_CASE_INSENSITIVE_VALUES,后来各种搜索依然没有解决,后来就去看了一下引用Jackson的包,发现版本不一致,抱着试试的心态把jackson-annotations包升级为2.10.3,发现问题解决了,
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.9</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.10.3</version> </dependency>
原来是以上两个版本不一致导致的,后来看源码中的feature枚举类中确实有了ACCEPT_CASE_INSENSITIVE_VALUES这个参数(因为这些包都是引用的公共的基础pom文件所以第一时间没有去看包的版本)
@JsonFormat注解遇到的问题
最新推荐文章于 2024-04-25 14:47:23 发布