JDK8 - LocalDateTime(反)序列化异常

【BUG解决】Cannot construct instance of java.time.LocalDate....Could not read JSON: Expected array... Cannot construct instance of java.time.LocalDate no Creators, like default constructor, exist: cannot deserialize from Object value no delegate- or property-based Creator 1. 问题描述2. 原因3. 解决方法4. 我的完整解决截图 1. 问题描述 使用LocalDateTime、LocalDate、LocalTime等时间做实体类属性的类 阅读详情

异常信息

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String "2021-05-25 11:02:00": Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text '2021-05-25 11:02:00' could not be parsed at index 10; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.time.LocalDateTime` from String "2021-05-25 11:02:00": Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text '2021-05-25 11:02:00' could not be parsed at index 10......

原因

  • JDK8中LocalDateTime默认日期格式是"yyy-MM-ddTHH:mm:ss",相对于往常数据格式多了"T",造成接收或者返回时间数据格式的时候出现异常

解决1:

  • 配置全局日期格式化
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
    private String pattern;

    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return builder -> {
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
            //返回时间数据序列化
            builder.serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(formatter));
            //接收时间数据反序列化
            builder.deserializerByType(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
        };
    }
}

解决2:

  • 在LocalDateTime 实体类使用注解
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime issueDate;
Jackson序列化Java 8 LocalDateTime报错解决方案与最佳实践 在Java应用开发中,JSON序列化与反序列化是数据交换的核心环节。Jackson作为广泛使用的JSON处理库,其模块化设计允许通过扩展支持特定类型。Java 8引入的java.time包(JSR-310)提供了全新的日期时间API,如LocalDateTime,但Jackson默认不支持这些类型,导致序列化时出现“not supported by default”报错。解决这一问题的技术关键在于引入jackson-datatype-jsr310模块并正确配置ObjectMapper,这不仅能确保日期时间数 阅读详情

相关推荐

FreeRTOS:卡在configASSERT( ( pxQueue ) )问题的解决

FreeRTOS卡在configASSERT( ( pxQueue ) )问题的解决

qq_42007164的博客 9563

SpringBoot中的Jackson中日期反序列化问题

序列化还有一个问题是,A 类中的 Date 属性加了@JsonFormat 后,序列化成 B 类的时候也会出现序列化异常。 ---------------------------------------------------------------- 今天开发项目中,报出了以下的异常, org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not deserialize

【欢迎关注公众号:冬瓜白】 4500

AIOps智能运维:从数据治理到故障自愈的实践指南

AIOps(智能运维)通过融合人工智能与运维管理,构建了感知-决策-执行的闭环体系。其核心技术包括多维度数据采集、机器学习算法和自动化执行,显著提升了告警治理、故障定位和容量预测的效率。在数据层,全量性、实时性的数据采集是基础,而算法层的异常检测和根因分析则依赖统计方法、孤立森林和LSTM等模型。AIOps尤其适用于处理告警风暴和复杂系统故障,如在电商大促中通过K-Means聚类减少92%的告警量。随着云原生和边缘计算的普及,AIOps正逐步实现与Service Mesh、Serverless等技术的深度集

weixin_30175731的博客 287

Springboot -data-redis中 对于java1.8的LocalDate 序列化问题

报错:org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Expected array or string. 解决方案: redis配置: @Bean publicRedisCacheManagercacheManager(RedisConnectionFactor...

HKF的博客 520

AM驱动架构—优质Mini-LED显示技术解决方案

(VR)和增强现实(AR)设备:MiniLED背光驱动方案适用于虚拟现实和增强现实设备中的显示技术,通过高亮度和高对比度的显示效果,创造更逼真的虚拟体验此外,MiniLED背光还能够实现更快的响应速度,减少图像残影,使得用户的动作在虚拟环境中更加流畅自然。以其出色的性能和广泛的应用前景备受关注是实现MiniLED显示效果的重要环节。1)更高的亮度和对比度:尺寸更小,可以在同样面积的显示屏上配置更多的LED,并且通过独立控制每一个MiniLED,可以实现更高的亮度和更细致的对比度,使得显示画面更加鲜明清晰。

isweekDN的博客 2762

【后端】主流后端语言:JAVA、C、C++、GO、PYTHON

软件开发领域,语言本身在各自领域都有适用场景,有许多流行的编程语言可供选择,每种语言都有其独特的特点和适用场景。

wnm23的专栏 1万+

Failed to deserialize java.time.LocalDateTime异常

今天在做新增功能,就是A服务通过Fegin调用B服务,由于B服务接口实体类中有LocalDateTime字段,导致A服务调用时解析报错,但是单独调用B服务的接口是正常的。A服务具体报错如下其中有句Failed to deserialize java.time.LocalDateTime,意思就是。

无所谓^_^博客 5929

摆脱英文束缚!群晖Transmission4.0.4全新中文界面攻略

在群晖安装完官方Transmission4.0.4套件后,界面是英文状态的,不太好用。但是按照网上分享的原来4.0以前版本的方法更新UI又失败,所以自己搞了下成功了,分享给需要的朋友。

XiaoqiangClub的博客 5207

Cannot resolve symbol 解决方案汇总(6种解决方案)

Cannot resolve symbol 解决方案汇总(6种解决方案)

qq_40698086的博客 22万+

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.3 从零移植 busybox,基于RISC-V

上一章节我们已经成功启动了`Ubuntu`,但是由于`Ubuntu`占用系统空间过大,所以我转向占用较小的`busybox`,预计就占用`30M`左右。开始移植busybox,基于riscv64

DSMGUOGUO的博客 856

从被秒封到稳过Cloudflare!Canvas/WebGL/WebRTC多维度浏览器指纹隐身全实战

反爬和反反爬,本质上是一场持续的博弈,没有100%的隐身,只有不断升级的伪装。网上很多教程只给了个基础的噪声代码,却没讲透反爬的检测逻辑,导致你用了还是被封。这套方案的核心,不是简单的API重写,而是站在反爬的角度,模拟真实用户的所有特征,保证所有指纹的一致性、合理性、完整性。目前这套方案我用了半年,跑了上千万次请求,稳过国内国外99%的主流反爬平台,没有出现过一次因为指纹关联导致的批量封禁。大家有什么更狠的反爬场景,或者更好的伪装技巧,欢迎评论区一起交流。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1193

优雅解决 SpringBoot 在 JDK8 中 LocalDateTime (反)序列化问题

在做项目的时候很容易遇到这种问题: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type java.time.LocalDateTime from String \"2020-02-15 22:13:15\":...

一只奋斗的猪 1万+

手把手教你学pcie--性能调优 - 中断机制优化

在PCIe系统开发中,中断机制是主机与设备之间通信的重要组成部分。然而,不当的中断设计可能导致CPU负载过高、延迟增加等问题。本文将详细介绍如何优化PCIe系统的中断机制,提升系统性能和响应速度。传统中断(INTx):通过专用引脚发送中断信号,可能引发冲突且效率较低。消息中断(MSI):通过内存写操作发送中断消息,避免冲突并提高效率。扩展消息中断(MSI-X):基于MSI改进,支持更多独立中断向量,适用于复杂场景。选择合适的中断模式对系统性能至关重要。

MHD0815的博客 282

【BUG系列】 JDK8 对LocalDateTime 在Redis中反序列化失败问题

参考地址:博客园​​​​​​​ 在接收参数实体类的createtime字段添加JsonFormat注解 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")

天天新知 1104

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

解决redis序列化java8 LocalDateTime

文章目录redis 序列化问题解决方案1. 使用注解的方式2. 使用全局配置文件 redis 序列化问题 在 JDK8 中 官方提出 LocalDateTime 的时间格式,因为他是线程安全的, 在我们的业务中,我们需要把 一些数据存到缓存中,不可避免的存 LocalDateTime 格式的时间,相信许多小伙伴都有遇到 存取 出现 LocalDateTime序列化异常 在我们实际开发中 LocalDateTime格式 会有 T 下面序列化我们把 T 业序列化 解决方案 1. 使用注解的方式

浪人与酒 2945

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

解决 redis 序列化 java8 LocalDateTime 问题

解决 redis 序列化 java8 LocalDateTime 问题问题背景问题描述问题分析解决方案一(全局)解决方案二(单个字段) 问题背景 目前项目全面支持JDK1.8,使用 LocalDateTime 代替 Date,原因为 date 格式化时不安全。 问题描述 org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Can not construct instance of ja

zhuzhoulin的博客 3718

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SpringBoot - 优雅解决 SpringBoot 在 JDK8 中 LocalDateTime(反)序列化问题

SpringBoot - 优雅解决 SpringBoot 在 JDK8 中 LocalDateTime(反)序列化问题

4140

SprinBoot Redis工具类 + 序(反)列化 + jdk1.8 LocalDateTime Redis序列化

Redis工具类 集成springboot依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> import org.springframework.d

它叫当当的博客 816

feign请求返回值反序列LocalDateTime异常记录

前言 最近项目组用feign调用远程服务,消费端报了如下一个异常 从异常信息可以得出localdatime反序列化出了异常,而这个异常又是因为jackson无法处理导致。因此我们可以为jackson的ObjectMapper适配一下 解决方法 1、在pom.xml引入 <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> &

kingwinstar的博客 2526

解决Redis序列化LocaDate、LocalDateTime异常

异常信息 springframework.data.redis.serializer.SerializationException: Could not read JSON: Cannot construct instance of `java.time.LocalDate` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based

Trishia的博客 1328

JDK8对LocalDateTime在Redis中反序列化失败问题

报错: Cannot construct instance of `java.time.LocalDateTime` (no Creators, like default construct, exist): no String-argument constructor/factory method to deserialize from String value ('2019-10-21 13:57:38') at [Source: UNKNOWN; line: -1, column: -1] (thr

优快云86363160的博客 1278

Redis序列化LocalDateTime报错

Redis序列化LocalDateTime报错背景方案一:实体类日期字段添加注解方案二:设置Redis对日期序列化处理添加配置:完整配置: 背景 实体类日期字段使用LocalDateTime,在Redis序列化时报错,会往Redis中写入如下数据: "createTime": { "date": { "year": 2019, "month": "MAY", "day": 15, "prolepticMonth": 24232, "era": [ "j

daidaidai0512的博客 1324

java8 jedis ttl,解决redis序列化java8 LocalDateTime

redis 序列化问题•在 JDK8 中 官方提出 LocalDateTime 的时间格式,因为他是线程安全的,•在我们的业务中,我们需要把 一些数据存到缓存中,不可避免的存 LocalDateTime 格式的时间,相信许多小伙伴都有遇到 存取 出现 LocalDateTime序列化异常•在我们实际开发中 LocalDateTime格式 会有 T 下面序列化我们把 T 业序列化解决方案1. 使用注...

weixin_42360905的博客 328

【异常】使用Jackson序列化LocalDateTime类型报错的解决方法

使用Jackson序列化LocalDateTime类型报错的解决方法

逝去的回忆的博客 2051

解决json字符串转为对象时LocalDateTime异常问题

1 出现异常 这次的异常出现在前端向后端发送请求体里带了两个日期,在后端的实体类中,这两个日期的格式都是JDK8中的时间类LocalDateTime。默认情况下,LocalDateTime只能解析2020-01-01T10:00:00这样标准格式的字符串,这里日期和时间中间有一个T。如果不做任何修改的话,LocalDateTime直接解析2020-05-01 08:00:00这种我们习惯上能接受的日期格式,会抛出异常。 异常信息: org.springframework.http.conv.

qq13321123的博客 3867

Spring Boot 中 Java8 LocalDateTime 序列化问题

LoginController页面如下: public Object login(@RequestBody User user) { return xxxx; } User 类属性: private LocalDateTime birthDay; //出生日期 postman测试: 传入日期"birthDay": "2014-01-01T01:00:00", 后台可以接收...

u011385940的专栏 2万+
上一篇: SpringBoot Json不返回NULL
下一篇: MybatisPlus - updateTime自动填充失败
hanlin-hl
博客等级 码龄8年 3粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hanlin-hl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值