LocalDate类型序列化成JSON时格式错误(已解决)

问题背景:

对象:projectTaskDto对象有日期属性

{planStartTime:"2024-07-10"
}

使用 writeValueAsString方法序列化成json格式后:

ObjectMapper objectMapper = new ObjectMapper();
String jsonRequest = objectMapper.writeValueAsString(projectTaskDto);

jsonRequest 中的日期格式为:

"planStartTime":{"year":2024,"month":"JULY","dayOfMonth":10,"monthValue":7,"dayOfWeek":"WEDNESDAY","era":"CE","dayOfYear":192,"leapYear":true,"chronology":{"id":"ISO","calendarType":"iso8601"}}

这种格式传给接口反序列化成LocalDate时报错

解决思路:日期序列化成正确的json格式:

"planStartTime": "2024-07-10"

两种解决方案:

方案①:

增加jackson-datatype-jsr310依赖,在pom.xml中添加

<dependency><groupId>com.fasterxml.jackson.datatype</groupId><artifactId>jackson-datatype-jsr310</artifactId>
</dependency>

在new出ObjectMapper对象后注册上刚才添加的依赖模块:objectMapper.findAndRegisterModules()

        ObjectMapper objectMapper = new ObjectMapper();objectMapper.findAndRegisterModules();String jsonRequest  = objectMapper.writeValueAsString(projectTaskDto);

效果:

"planStartTime": "2024-07-10"

方案②:(推荐)

在实体类上添加序列化注解@JsonSerialize(using = LocalDateSerializer.class)

    @JsonSerialize(using = LocalDateSerializer.class)private LocalDate planStartTime;

该注解LocalDateSerializer.class继承了上述jackson-datatype-jsr310依赖,因此无需再引入

效果:

"planStartTime": "2024-07-10"

到这只完成一半,准备接收json反序列化的实体类也需要添加反序列化注解

 @JsonDeserialize(using = LocalDateDeserializer.class)

    @JsonDeserialize(using = LocalDateDeserializer.class)private LocalDate planStartTime;

这样便能够正常传递与接收LocalDate类型的时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47280.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++模板初阶----函数模板与类模板

目录 泛型编程 函数模板 函数模板的概念 函数模板的格式 函数模板的原理 函数模板的实例化 函数模板的匹配原则 类模板 类模板的定义格式 类模板的实例化 c的模板大致可以分为&#xff1a; 函数模板类模板 首先在我们引入模板之前&#xff0c;先进行介绍泛型编程 泛…

期权黑天鹅怎么应对?近期很有可能发生的事情!

今天带你了解期权黑天鹅怎么应对&#xff1f;在当今世界&#xff0c;投资者们不断地寻找着各种策略来应对市场的波动和不确定性。其中&#xff0c;黑天鹅策略在近年来逐渐受到了广泛的关注&#xff0c;这种策略主要是利用极端事件&#xff0c;例如突发事件或自然灾害等难以预测…

【React笔记初学总结一】React新手的学习流程笔记总结,掰开了揉碎了,下载安装基础结构学习

REACT学习记录 一、React是什么&#xff1a;二、尝试安装下载&#xff1a;三、理解都有什么四、基础网页学习&#xff1a;1.几个比较重要的资源包例子2.第一个react示例&#xff1a;&#xff08;掰开了揉碎了&#xff0c;咱们先看懂它最简单的结构&#xff09;3.第二个react示例…

深入Laravel的魔法核心:依赖注入的工作原理

深入Laravel的魔法核心&#xff1a;依赖注入的工作原理 在现代软件开发中&#xff0c;依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;是一种设计模式&#xff0c;它允许开发者将组件的依赖关系从组件本身中解耦出来&#xff0c;从而提高代码的灵活性和可…

常用的系统层安全机制

目录 1. SafeSEH2. DEP3. PIE4. NX5. ASLR6. SEHOP7. GS 为应对各种各样的网络攻击&#xff0c;操作系统内部有很多底层的安全机制。而每一种安全机制&#xff0c;都对应了一定形式的网络攻击方法。 攻击队的能力是指掌握这些系统层安全机制的技术原理&#xff0c;能够发现程序…

javafx、node js、socket、OpenGL多线程

机器学习、算法、人工智能、汇编&#xff08;mips、arm、8086&#xff09;、操作系统、数据挖掘、编译原理、计算机网络、Arena软件、linux xv6、racket、shell、Linux、PHP、Haskell、Scala、spark、UML、mathematica、GUI、javafx、node js、socket、OpenGL、多线程、qt、数据…

C++链接FTP服务器并下载数据(在qt中编写)

.pro文件 #------------------------------------------------- # # Project created by QtCreator 2024-07-16T13:19:03 # #-------------------------------------------------QT core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsTARGET untitled TE…

Qt实现IP地址输入框-自定义控件

在 许多应用程序中&#xff0c;我们经常需要使用IP地址。为了方便用户输入和处理&#xff0c;一个好的解决方案是使用自定义控件。本示例代码使用Qt编写一个名为“IPAddress”的自定义控件来实现IP地址的输入功能。通过使用此控件&#xff0c;用户可以方便地输入和处理IP地址。…

吴恩达机器学习笔记 三十八 二进制标签 均值归一化

标签 0 和 1 可以有很多种意义。从回归到二分分类&#xff1a;之前定义 ,而对于二进制标签&#xff0c;通过给出y^(i,j)为 1 的概率&#xff0c;其中 损失函数 均值归一化 计算每个电影的平均得分&#xff0c;例如第一部电影的平均分为2.5&#xff0c;第五部电影的平均分为1.2…

如何在excel表中实现单元格满足条件时整行变色?

可以试试使用条件格式&#xff1a; 一、条件格式 所谓“自动变色”就要使用条件格式。 先简单模拟数据如下&#xff0c; 按 B列数字为偶数 为条件&#xff0c;整行标记为蓝色背景色。 可以这样设置&#xff1a; 先选中1:10行数据&#xff0c;在这里要确定一下名称栏里显示…

pico+unity3d手部动画

在 Unity 开发中&#xff0c;输入系统的选择和运用对于实现丰富的交互体验至关重要。本文将深入探讨 Unity 中的 Input System 和 XR Input Subsystem 这两种不同的输入系统&#xff0c;并详细介绍它们在控制手部动画方面的应用。 一、Input System 和 XR Input Subsystem 的区…

高并发解决方案总结

高并发是指在短时间内有大量的用户同时访问系统或服务&#xff0c;导致系统压力剧增&#xff0c;可能出现响应延迟、服务不可用等问题。针对高并发问题&#xff0c;有多种解决方案&#xff0c;以下是一些主要的解决方案&#xff1a; 一、架构层面 负载均衡&#xff1a; 将多…

Java性能优化-书写高质量SQL的建议(如何做Mysql优化)

场景 Mysql中varchar类型数字排序不对踩坑记录&#xff1a; Mysql中varchar类型数字排序不对踩坑记录_mysql vachar排序有问题-CSDN博客 为避免开发过程中针对mysql语句的写法再次踩坑&#xff0c;总结开发过程中常用书写高质量sql的一些建议。 注&#xff1a; 博客&#…

什么是智能家居?

智能家居&#xff0c;也称为家庭自动化&#xff0c;是一种将科技力量融入日常生活的革命性生活方式。它通过将家中的各种设备&#xff08;如照明、音响、空调、通风机、报警器、电动窗帘、传感器以及各类家电&#xff09;通过专用的网络连接在一起&#xff0c;实现自动控制、远…

Java面试题--JVM大厂篇之深入解析JVM中的Serial GC:工作原理与代际区别

目录 引言&#xff1a; 正文&#xff1a; 一、Serial GC工作原理 年轻代垃圾回收&#xff08;Minor GC&#xff09;&#xff1a; 老年代垃圾回收&#xff08;Major GC或Full GC&#xff09;&#xff1a; 二、年轻代和老年代的区别 年轻代&#xff08;Young Generation&a…

docker快速安装(环境CentOS7)

1. 查看自己的Linux系统 cat /etc/redhat-release 2. 安装依赖插件 yum -y install gcc yum -y install gcc-c yum install -y yum-utils yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum -y insta…

MongoDB常用命令大全,概述、备份恢复

文章目录 一、MongoDB简介二、服务启动停止、连接三、数据库相关四、集合操作五、文档操作六、数据备份与恢复/导入导出数据6.1 mongodump备份数据库6.2 mongorestore还原数据库6.3 mongoexport导出表 或 表中部分字段6.4 mongoimport导入表 或 表中部分字段 七、其他常用命令八…

养猪管理如何实现远程监控

在现代化农业快速发展的背景下&#xff0c;养猪管理的智能化与远程监控技术的应用日益成为提升养殖效率、保障动物健康及优化资源配置的关键手段。实现养猪管理的远程监控&#xff0c;不仅能够实时掌握猪场环境参数与生猪生长状况&#xff0c;还能有效预防疾病、提高生产性能&a…

Spring Cloud环境搭建

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;Spring学习之路&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 1. 开发环境安装 1.1 安装JDK ​1.2 安装MySQL 2. 案列介绍 2.1 …

C语言指针超详解——进阶篇

C语言指针系列文章目录 入门篇 强化篇 进阶篇 文章目录 C语言指针系列文章目录1. 字符指针变量2. 数组指针变量2. 1 概念2. 2 数组指针变量的初始化 3. 二维数组传参的本质4. 函数指针变量4. 1 函数指针变量的创建4. 2 指针变量的使用4. 3 两个有趣的代码4. 3. 1 代码一4. 3. …