客户端使用fastjson进行序列化,服务端使用jackson反序列化失败。报错。

Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2022-04-04 04:04:04": not a valid representation (error: Failed to parse Date value '2022-04-04 04:04:04': Cannot parse date "2022-04-04 04:04:04": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', parsing fails (leniency? null))

原因:

fastjson默认使用的序列化格式:

public static String           DEFFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";

jackson默认支持的日期反序列格式:​​​​​​​

("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")) 

jackson默认的日期反序列不支持yyyy-MM-dd HH:mm:ss 这种格式,所以反序列化失败

解决办法一:重写jackson反序列化

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** @version 1.0.0* @description 重写反序列化* @date 2018/12/25 9:51**/public class CustomJsonDateDeserializer extends JsonDeserializer<Date> {@Overridepublic 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);}}
}

在需要的date属性上添加注解:

   @JsonDeserialize(using = CustomJsonDateDeserializer.class)private Date createTime;使用这种方式,需要重写上面反序列化抽象类

解决办法二:直接使用jackson注解,不需要重写反序列化

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date createTime;

GMT+8表示时区,东八区

解决办法三:直接使用fastjson注解,不要重写反序列化

@JSONField(format = “yyyy-MM-dd HH:mm:ss”)
private Date createTime;

添加依赖:

<!-- fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.32</version></dependency><!-- jackson--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.6.4</version></dependency>

com.fasterxml.jackson.databind.exc.InvalidFormatException解决方案相关推荐

  1. com.fasterxml.jackson.databind.exc.InvalidFormatException问题

    客户端使用fastjson进行序列化,服务端使用jackson反序列化失败.报错. Caused by: com.fasterxml.jackson.databind.exc.InvalidForma ...

  2. com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.zyw

    问题如下 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com ...

  3. com.fasterxml.jackson.databind.exc.InvalidDefinitionException

    com.fasterxml.jackson.databind.exc.InvalidDefinitionException: 错误信息 com.fasterxml.jackson.databind.e ...

  4. Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException

    问题描述 整合SpringSecurity时, 认证通过后把LoginUser信息存储到redis缓存中: 校验token通过后,读取redis缓存中的LoginUser数据失败,报错: Caused ...

  5. java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException

    在引入Jacksonjar包时,运行程序抛出了这个异常: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.In ...

  6. 【objectMapper实体转换异常】 com.fasterxml.jackson.databind.exc.MismatchedInputException

    大家好,我是烤鸭: 采坑实录,想把json数据直接转成对象,其中有个属性是list<T>: 异常 1 com.fasterxml.jackson.databind.exc.Mismatch ...

  7. 报错, nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException

    问题: 2021-03-23 16:57:28.461 ERROR 7912 --- [io-12000-exec-1] c.y.w.c.GlobalControllerExceptionHandle ...

  8. 报错,nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException??

    1. 问题: 2021-01-06 15:43:41.663 ERROR 10184 --- [io-13000-exec-2] c.y.a.c.v1.retcode.RetControlller   ...

  9. com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field FileSize

    请求阿里云的OSS接口图片信息,返回json格式的数据,通过ObjectMapper将json转为Image对象时候报错转换失败 将json转对象的代码: String jsonStr = " ...

最新文章

  1. 二十七、综合案例数据预处理
  2. linux 实时功能,linux – 什么是同时具有实时循环和非实时功能的更好方法
  3. 5 useMemouseCallback
  4. excel合并两列内容_还在为合并WPS表格(Excel)中两列内容而犯愁?此方法简单高效...
  5. 电脑硬件检测_【学无止境】电脑硬件维修测试学习资料(附送各类PC检修资源)...
  6. sharepoint被阻止的文件类型解释说明
  7. Haybale Guessing (POJ-3657)
  8. CSS级联样式表-css选择器
  9. 数据分析融入至BI工具的新思路
  10. linux7怎么禁止用户密码登录,Centos7锁定用户禁止登陆的解决办法
  11. Cassandra Wiki Login JmxSecurity
  12. PTA甲级15进制转换
  13. 乐理matlab频率表,【基本乐理】十二平均律、半音、全音与度数
  14. 【模电】0006 有源滤波器1(一阶有源滤波器)
  15. 1linux 课程引入
  16. JAVA进阶—注解,对象克隆,设计模式
  17. 好系统教你Win7系统开机启动慢怎么解决?
  18. 2020《人工智能技术服务》专业人才培养方案
  19. redis踩坑:redis哨兵开启了保护模式导致主从切换不同步
  20. wechatpy开发微信公众号(实现自定义菜单,翻译)

热门文章

  1. POJ-2524 Ubiquitous Religions(无处不在的宗教)解题报告(并查集)
  2. 【FIW2022 精彩回顾】方正富邦基于超融合构建核心数据库资源池的探索与实践
  3. 【新建项目使用viewPager】实现一个Android电子书阅读APP
  4. linux系统下的ocr软件,【工具类】Linux安装OCR识别工具tesseract
  5. 优云CMDB专家实践谈:自动化运维的基石CMDB
  6. ORAN专题系列-3:O-RAN的OAM操作维护管理架构
  7. 一政网是真实助公考上岸的吗?
  8. ubuntu16.04实用工具和录屏软件以及anaconda的图形化显示脚本
  9. 大聪明教你学Java设计模式 | 第十四篇:迭代器模式
  10. 动态加载页面分析、POST请求参数和内容爬取