Jackson对于date的反序列化只支持几种,如果不符合默认格式则会报一下错误
- org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value '2012-12-12 12:01:01': not a valid representation (error: Can not parse date "2012-12-12 12:01:01": not compatible with any of standard forms ("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
- at [Source: org.glassfish.jersey.message.internal.EntityInputStream@2c384e19; line: 1, column: 2] (through reference chain: jerseyspring.representation.Order["payTime"])
- at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)
- at org.codehaus.jackson.map.deser.StdDeserializationContext.weirdStringException(StdDeserializationContext.java:243)
- at org.codehaus.jackson.map.deser.std.StdDeserializer._parseDate(StdDeserializer.java:577)
- at org.codehaus.jackson.map.deser.std.DateDeserializer.deserialize(DateDeserializer.java:28)
- at org.codehaus.jackson.map.deser.std.DateDeserializer.deserialize(DateDeserializer.java:19)
- at org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:299)
- at org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:414)
- at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:697)
- at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)
- at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2704)
- at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1315)
- at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)
解决方案:
- public class CustomJsonDateDeserializer extends JsonDeserializer<Date> {
- @Override
- public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String date = jp.getText();
- try {
- return format.parse(date);
- } catch (ParseException e) {
- throw new RuntimeException(e);
- }
- }
- }
且在字段的setter上加上注解
- @JsonDeserialize(using = CustomJsonDateDeserializer.class)
相关推荐
Spring boot 替换默认的jackson库为fastjson Spring boot 使用jsontest注解测试序列化反序列化用例 Spring Boot 中使用 Fastjson用例
介绍自己不会查吗?这里有一个点就是Hessian的序列化与反序列化与原生序列化与反序列化不同,就以使用的Resin链而言,其中的javax.naming.spi
spring使用jackson实现json
Date yml全局配置 spring: jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss #配置POST请求Body中Date时间类型序列化格式处理,并返回 请求参数类型转换
-- Jackson Json处理工具包 --> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind ${jackson.version} 2:在springweb.xml中加入: class="org.springframework.web....
spring boot 中jackson自定义序列化和反序列化
spring-mvc序列化json动态擦除属性[参照].pdf
spring-mvc序列化json动态擦除属性[参考].pdf
卡夫卡流货币反序列化 一个演示项目,用于研究Spring Kafka Streams的序列化/反序列化问题
Date yml全局配置 spring: jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss #配置POST请求Body中Date时间类型序列化格式处理,并返回 请求参数类型转换
主要介绍了解决Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题,需要的朋友可以参考下
Spring MVC 的默认 json 解析器便是 Jackson。 Jackson 优点很多。 Jackson 所依赖的 jar 包较少 ,简单易用。与其他 Java 的 json 的框架 Gson 等相比, Jackson 解析大的 json 文件速度比较快;Jackson 运行时...
spring整合redis(spring模板+连接池+json序列化+cluster集群).zip
主要给大家介绍了关于SpringBoot实现子类的反序列化的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用SpringBoot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
spring 反编译器 spring源码
SpringMVC +Spring4.3.12+jackson+文件上传 所有Jar包
对于Spring4.X版本的适合,因为Spring3.0和Spring4.0有使用差距
spring-boot 自动生成序列化ID.pdfspring-boot 自动生成序列化ID.pdfspring-boot 自动生成序列化ID.pdfspring-boot 自动生成序列化ID.pdfspring-boot 自动生成序列化ID.pdfspring-boot 自动生成序列化ID.pdfspring-...
spring整合redis(spring模板+连接池+json序列化+cluster集群)