当前位置:网站首页>com. fasterxml. jackson. databind. Exc.invalidformatexception problem
com. fasterxml. jackson. databind. Exc.invalidformatexception problem
2022-07-03 03:12:00 【Friendship years】
Client side usage fastjson serialize , Server use jackson Deserialization failure . Report errors .
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))
reason :
fastjson The default serialization format :
public static String DEFFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
jackson The default supported date inverse sequence format :
("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 The default date inverse sequence does not support yyyy-MM-dd HH:mm:ss This format , So deserialization failed
Solution one : rewrite jackson Deserialization
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 Override deserialization
* @date 2018/12/25 9:51
**/
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);
}
}
}
In need of date Add comments to attributes :
@JsonDeserialize(using = CustomJsonDateDeserializer.class)
private Date createTime;
In this way , You need to override the above deserialization abstract class
Solution two : Use it directly jackson annotation , No need to override deserialization
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
GMT+8 Time zone , East eight
Solution three : Use it directly fastjson annotation , Do not override deserialization
@JSONField(format = “yyyy-MM-dd HH:mm:ss”)
private Date createTime;
Add dependency :
<!-- 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>
边栏推荐
- How to limit the size of the dictionary- How to limit the size of a dictionary?
- The process of connecting MySQL with docker
- Distributed transaction
- Parameter index out of range (1 > number of parameters, which is 0)
- 销毁Session和清空指定的属性
- The file marked by labelme is converted to yolov5 format
- Notifydatasetchanged not applicable to recyclerview - notifydatasetchanged not working on recyclerview
- Three. JS local environment setup
- 文件重命名
- VS 2019 配置tensorRT生成engine
猜你喜欢
I2C subsystem (III): I2C driver
别再用 System.currentTimeMillis() 统计耗时了,太 Low,StopWatch 好用到爆!
VS 2019 配置tensorRT生成engine
TCP handshake three times and wave four times. Why does TCP need handshake three times and wave four times? TCP connection establishes a failure processing mechanism
[shutter] monitor the transparency gradient of the scrolling action control component (remove the blank of the top status bar | frame layout component | transparency component | monitor the scrolling
Spark on yarn资源优化思路笔记
I2C subsystem (II): I3C spec
I2C 子系统(三):I2C Driver
Vs Code configure virtual environment
Spark on yarn resource optimization ideas notes
随机推荐
Spark on yarn resource optimization ideas notes
Process the dataset and use labelencoder to convert all IDs to start from 0
Practice of traffic recording and playback in vivo
Introduction to cron expression
Check log4j problems using stain analysis
Idea format code idea set shortcut key format code
Kubernetes cluster log and efk architecture log scheme
Docker install MySQL
MySQL Real combat 45 [SQL query and Update Execution Process]
Force freeing memory in PHP
Change cell color in Excel using C - cell color changing in Excel using C
Idea set method call ignore case
Deep reinforcement learning for intelligent transportation systems: a survey paper reading notes
MySQL practice 45 lecture [transaction isolation]
Use of El tree search method
I2C 子系统(二):I3C spec
ASP. Net core 6 framework unveiling example demonstration [02]: application development based on routing, MVC and grpc
Hi3536C V100R001C02SPC040 交叉编译器安装
Tensorflow to pytorch notes; tf. gather_ Nd (x, y) to pytorch
yii2 中andWhere多个or查询 orm条件