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,这不仅能确保日期时间数 阅读详情

相关推荐

相机标定原理与张氏标定法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

heeweii的博客 2280

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

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

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

逻辑漏洞:水平越权、垂直越权靶场练习

水平越权和垂直越权是组织中常见的管理问题,指的是员工在组织中所拥有的权力和责任超出其职位所应具备的范围。 水平越权是指员工在同一级别的职位上超越了其同事的权力和责任范围,通常表现为某个员工在团队中承担了过多的任务或权力,导致其他同事感到不公平或不满。 垂直越权则是指员工在组织中超越了其职位等级的权力和责任范围,通常表现为员工在没有得到上级批准的情况下做出决策或行动,可能会导致组织内部的混乱和冲突。

qq_68163788的博客 2469

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

2025年春科研论文写作指导(如何写好科研论文)研究生网课期末考试

希望能帮助到大家

beijieweiyu的博客 5784

ISP图像处理Verilog仿真框架搭建(附代码)

基于Verilog的图像处理仿真框架搭建

路漫漫其修远兮,吾将上下而求索 1894

Failed to deserialize java.time.LocalDateTime异常

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

无所谓^_^博客 5929

Outlook总是提示登录微软,怎么办?

Outlook 2021反复弹出Microsoft登录窗口,可能是由于Modern Authentication身份验证机制或凭据问题导致。解决方案包括:1)通过注册表关闭Modern Authentication(适用于本地Exchange);2)清理Windows凭据管理器中的旧认证信息;3)手动配置Exchange服务器地址;4)通过注册表阻止Microsoft登录窗口弹出(适用于非M365环境)。建议按顺序尝试,尤其前两步通常能解决问题。经测试,步骤1和2已有效解决该问题。

剪刀石头布 4661

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

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

qq_40698086的博客 22万+

实测避坑:华为Atlas 300I DUO推理卡部署Qwen1.5,性能对比3090与完整配置流程

本文深度评测华为Atlas 300I DUO推理卡在部署Qwen1.5-14B大模型时的性能表现,并与RTX 3090进行对比。通过实测数据展示硬件参数、部署流程及性能优化建议,揭示国产AI加速卡在LLM推理中的独特优势与适用场景,为开发者提供完整的配置指南和避坑方案。

weixin_29083475的博客 790

31、工程中不确定性量化与优化的全面解析

本文全面解析了工程中不确定性量化与优化的关键方法。针对数据充足与不足两种情况,分别介绍了概率理论和非概率方法在不确定性建模中的应用;系统阐述了采样方法、FORM/SORM、泰勒级数近似等不确定性传播技术;深入比较了RBDO与RDO两种主流优化框架的原理、步骤及适用场景,并通过两杆桁架案例展示了具体实现过程。文章旨在为工程师提供一套完整的从不确定性分析到优化设计的方法论,提升工程系统的可靠性与稳健性。

php55的博客 121

优雅解决 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万+

系统建模语言 (SysML)

系统建模语言

追赶时代的博客 749

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

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

天天新知 1104

Camera2Demo

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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

解决redis序列化java8 LocalDateTime

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

浪人与酒 2945

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

解决 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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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、付费专栏及课程。

余额充值