com.fasterxml.jackson.databind.exc.InvalidFormatException解决方案
客户端使用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解决方案相关推荐
- com.fasterxml.jackson.databind.exc.InvalidFormatException问题
客户端使用fastjson进行序列化,服务端使用jackson反序列化失败.报错. Caused by: com.fasterxml.jackson.databind.exc.InvalidForma ...
- com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.zyw
问题如下 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of com ...
- com.fasterxml.jackson.databind.exc.InvalidDefinitionException
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: 错误信息 com.fasterxml.jackson.databind.e ...
- Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException
问题描述 整合SpringSecurity时, 认证通过后把LoginUser信息存储到redis缓存中: 校验token通过后,读取redis缓存中的LoginUser数据失败,报错: Caused ...
- java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException
在引入Jacksonjar包时,运行程序抛出了这个异常: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.In ...
- 【objectMapper实体转换异常】 com.fasterxml.jackson.databind.exc.MismatchedInputException
大家好,我是烤鸭: 采坑实录,想把json数据直接转成对象,其中有个属性是list<T>: 异常 1 com.fasterxml.jackson.databind.exc.Mismatch ...
- 报错, 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 ...
- 报错,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 ...
- com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field FileSize
请求阿里云的OSS接口图片信息,返回json格式的数据,通过ObjectMapper将json转为Image对象时候报错转换失败 将json转对象的代码: String jsonStr = " ...
最新文章
- 二十七、综合案例数据预处理
- linux 实时功能,linux – 什么是同时具有实时循环和非实时功能的更好方法
- 5 useMemouseCallback
- excel合并两列内容_还在为合并WPS表格(Excel)中两列内容而犯愁?此方法简单高效...
- 电脑硬件检测_【学无止境】电脑硬件维修测试学习资料(附送各类PC检修资源)...
- sharepoint被阻止的文件类型解释说明
- Haybale Guessing (POJ-3657)
- CSS级联样式表-css选择器
- 数据分析融入至BI工具的新思路
- linux7怎么禁止用户密码登录,Centos7锁定用户禁止登陆的解决办法
- Cassandra Wiki Login JmxSecurity
- PTA甲级15进制转换
- 乐理matlab频率表,【基本乐理】十二平均律、半音、全音与度数
- 【模电】0006 有源滤波器1(一阶有源滤波器)
- 1linux 课程引入
- JAVA进阶—注解,对象克隆,设计模式
- 好系统教你Win7系统开机启动慢怎么解决?
- 2020《人工智能技术服务》专业人才培养方案
- redis踩坑:redis哨兵开启了保护模式导致主从切换不同步
- wechatpy开发微信公众号(实现自定义菜单,翻译)
热门文章
- POJ-2524 Ubiquitous Religions(无处不在的宗教)解题报告(并查集)
- 【FIW2022 精彩回顾】方正富邦基于超融合构建核心数据库资源池的探索与实践
- 【新建项目使用viewPager】实现一个Android电子书阅读APP
- linux系统下的ocr软件,【工具类】Linux安装OCR识别工具tesseract
- 优云CMDB专家实践谈:自动化运维的基石CMDB
- ORAN专题系列-3:O-RAN的OAM操作维护管理架构
- 一政网是真实助公考上岸的吗?
- ubuntu16.04实用工具和录屏软件以及anaconda的图形化显示脚本
- 大聪明教你学Java设计模式 | 第十四篇:迭代器模式
- 动态加载页面分析、POST请求参数和内容爬取