fastJson和jackson的日期数据处理
目录
1.jackson
2.fastjson
3.总结
1.jackson
jackson是spring mvc默认的JSON解析方法,前端的数据序列化处理之后,后端经过反序列化处理可以直接使用实体对象进行接收。后端接口返回实体对象,经过序列化处理后前端可以接收并进行处理。
后端接收前端的日期参数以及后端的日期参数传递给前端,在序列化处理中,需要进行特殊处理。否则后端接收的时间不正确,会多8个小时;前端显示的时间没有被格式化。当然也可以在前端使用一些组件进行特殊处理。这里主要说明如何在后端进行处理。
(1)统一处理
①重写jsckson默认的配置,设置日期的格式
# 因为SpringBoot帮我们配置了JacksonAutoConfiguration,所以我们这边是可以正常返回接口的
# 根据JacksonAutoConfiguration里的代码我们是可以重写ObjectMapper去完成日期的代码格式化
# 在我们了解到JacksonAutoConfiguration类时,我们首先了解到的是JacksonHttpMessageConvertersConfiguration
# 在里面有MappingJackson2HttpMessageConverter,我们去重新定义这个我们也是可以解决的,但是就没有第一种方式比较简便
# 在WebMvcConfig类中我会放上这两种方式的代码,但会注释第二种方式的代码
@Configuration
public class WebMvcConfig {//@Bean//MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(){// MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();// ObjectMapper objectMapper = new ObjectMapper();// objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));// converter.setObjectMapper(objectMapper);// return converter;//}@BeanObjectMapper objectMapper(){ObjectMapper objectMapper = new ObjectMapper();objectMapper.setDateFormat(new SimpleDateFormat("yyyy/MM/dd"));return objectMapper;}}
②在配置文件中配置日期格式
spring:jackson:date-format: yyyy-MM-dd
(2)单独处理
①使用注解方式,在实体类中配置注解,格式需要和前端传递的日期格式一致,否则会报错。
/*** 绑定时间*/@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")private Date createTime;
因为日期格式的不同,一般使用单独配置的方式,在实体类中添加注解,用于对前端传递的数据进行格式化及时区处理以及对后端的数据进行格式化传递给前端进行显示。
jackson相关的注解如下:
2.fastjson
fastjson是阿里的一款json工具,部分版本存在漏洞,使用时需要注意。
官网:http://code.alibabatech.com/wiki/display/FastJSON/Overview
在日期的格式化方式需要使用JSONField注解进行处理
比如在接口中使用String类型的参数接收前端传递的表单数据,然后再后端使用fastJson进行格式化处理,如果存在日期相关的数据,需要使用JSONfIeld进行处理。
/*** 上传时间*/@JSONField(format = "yyyy-MM-dd HH:mm:ss")private Date uploadTime;/*** 发布时间*/@JSONField(format = "yyyy-MM-dd HH:mm")private Date releaseTime;
3.总结
springmvc默认将前端数据使用jsckson进行转换,所有涉及到前端日期类型数据的接受以及回传给前端的日期数据,相关的字段要使用jsonformat注解
在代码中使用fastjson进行json格式的转换需要使用JSONField注解进行日期格式的转换,使用jsonformat会报转换失败的错误
com.alibaba.fastjson.JSONException: For input string: "2024-01-10 09:56"
参照
jackson与fastjson_jackson和fastjson-CSDN博客
SpringBoot中默认的JSON解析方案 日期格式化多种解决方案_json格式化采用默认方式了-CSDN博客
Fastjson JSONField_w3cschool
Java日期格式化(@JsonFormat @JSONField)_jsonfield 格式化时间-CSDN博客
相关文章:

fastJson和jackson的日期数据处理
目录 1.jackson 2.fastjson 3.总结 1.jackson jackson是spring mvc默认的JSON解析方法,前端的数据序列化处理之后,后端经过反序列化处理可以直接使用实体对象进行接收。后端接口返回实体对象,经过序列化处理后前端可以接收并进行处理。 …...

书生·浦语大模型实战营第五节课笔记及作业
LMDeploy 大模型量化部署实践 1 大模型部署背景 1.1 模型部署及大模型特点 1.2 大模型部署挑战及方案 2 LMDeploy简介 2.1 核心功能-量化 2.2 核心功能-推理引擎TurboMind 2.1 核心功能-推理服务api server 3 动手实践及作业 按照文档LMDeploy 的量化和部署中的步骤在Intern…...

如何在CentOS 7 中基于OpenSSL 3.0 搭建Python 3.0 环境
1、OpenSSL 1.1 原因 [rootlocalhost ~]# openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 [rootlocalhost ~]#通过执行openssl version可知Linux系统已经安装了OpenSSL,但该版本较低;Python 3 要求 OpenSSL版本不能低于1.1.1,否则安装P…...

爬虫接口获取外汇数据(汇率,外汇储备,贸易顺差,美国CPI,M2,国债利率)
akshare是一个很好用的财经数据api接口,完全免费!!和Tushare不一样。 除了我标题显示的数据外,他还提供各种股票数据,债券数据,外汇,期货,宏观经济,基金,银行…...
Spring Cloud和微服务架构的关系
大话Spring Cloud 在Java悠久的历史长河中(其实也就十来年),有一个框架自诞生之初就成了Java企业级开发领域的弄潮儿,它以开放的姿态不断引领着技术改革(我们管他叫Java领域的“改革开放”),它就是久经考验的企业级开发框架,改革…...
C++:通过ofstream写入二进制文件内容
C++:通过ifstream读取二进制文件内容_c++ ifstream 二进制读取-CSDN博客 介绍了读取二进制文件的方法。 本文介绍一下写入二进制数据到文件的方法: 1.通过write #include <fstream> #include <string> using namespace std; int main() {int data = 0x0102030…...

系统配置dns主从服务器
一、准备两台主机,区分主从 二、完全区域传送 1、主DNS服务器配置 #安装相关的包 [rootoula1 ~]# yum install bind -y#关闭防火墙 [rootoula1 ~]# systemctl stop firewalld [rootoula1 ~]# setenforce 0#修改配置主文件 [rootoula1 ~]# vim /etc/named.conf opt…...
【git】解决网络连接问题
ssh: connect to host github.com port 22: Connection timed out $ ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. bash: ssh:: command not found bash: fatal:: command not found无效 检查网络…...
限制API接口访问速率
文章目录 依赖注解aophelperTest 免责声明:本人无意侵权,奈何找不到原文作者,也找不到网址,于是自己记录一下,如果有侵权之嫌,请联系我删除文章 依赖 <!-- https://mvnrepository.com/artifact/com.goo…...
广东省第三届职业技能大赛“网络安全项目”B模块--数字取证解析
广东省第三届职业技能大赛“网络安全项目”B模块任务书 PS: 关注鱼影安全第一部分 网络安全事件响应第二部分 数字取证调查任务 3: 网络数据包分析取证解析:第三部分 应用程序安全:需要环境可以私信博主~PS: 关注鱼影安全 模块 B 竞赛项目试题 本文件为:广东省第三届职业技…...

全链路压力测试:现代软件工程中的重要性
全链路压力测试不仅可以确保系统在高负载下的性能和稳定性,还能帮助企业进行有效的风险管理和性能优化。在快速发展的互联网时代,全链路压力测试已成为确保软件产品质量的关键步骤。 1、测试环境搭建 测试应在与生产环境尽可能相似的环境中进行ÿ…...
【计算机网络】难点、易遗忘点总结
文章目录 1. 单工通信、半双工通信和全双工通信2. TCP的三次握手和四次挥手 1. 单工通信、半双工通信和全双工通信 主要区别在于信息传输的方向和时间安排。单工通信是指信息只能在一个方向上传输的通信方式。半双工通信允许信息在两个方向上传输,但在任何给定的时…...

谷达冠楠科技:抖音开网店新手小白可以卖的产品
随着互联网的发展,越来越多的人选择在网上开设自己的店铺。而抖音作为目前最火的短视频平台,也提供了开店的功能。那么,对于新手小白来说,抖音开网店可以卖哪些产品呢? 我们可以考虑的是服装类商品。抖音上有很多时尚博主&#x…...

爬虫案例—根据四大名著书名抓取并存储为文本文件
爬虫案例—根据四大名著书名抓取并存储为文本文件 诗词名句网:https://www.shicimingju.com 目标:输入四大名著的书名,抓取名著的全部内容,包括书名,作者,年代及各章节内容 诗词名句网主页如下图&#x…...

阿里云容器服务助力万兴科技 AIGC 应用加速
作者:子白(顾静) 2023 年堪称是 AIGC 元年,文生图领域诞生了 Stable Diffusion 项目,文生文领域诞生了 GPT 家族。一时间风起云涌,国内外许多企业投身 AIGC 创新浪潮,各大云厂商紧随其后纷纷推…...

STM32F103标准外设库——认识STM32(一)
个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…...

设计模式——1_5 享元(Flyweight)
今人不见古时月,今月曾经照古人 ——李白 文章目录 定义图纸一个例子:可以复用的样式表绘制表格降本增效?第一步,先分析 变化和不变的地方第二步,把变化和不变的地方拆开来第三步:有没有办法共享这些内容完…...

kafka系列(二)
本章承接kafka一内容,文章在本人博客主页都有,可以自行点击浏览。 幂等性 请求执行多次,但执行的结果是一致的。 如果,某个系统是不具备幂等性的,如果用户重复提交了某个表格,就可能会造成不良影响。例如…...

Ubuntu20.04安装配置OpenCV-Python库并首次执行读图
一、选择三方提供的预编译包安装: 可以从官网下载 OpenCV 的安装包,编译后使用;也可以直接使用第三方提供的预编译包 安装。显然后者不需要执行编译步骤,更便捷。选择由 PyPI 提供的 OpenCV 安装包,可以在 https://py…...

经典目标检测YOLO系列(二)YOLOV2的复现(2)正样本的匹配、损失函数的实现及模型训练
经典目标检测YOLO系列(二)YOLOV2的复现(2)正样本的匹配、损失函数的实现及模型训练 我们在之前实现YOLOv1的基础上,加入了先验框机制,快速的实现了YOLOv2的网络架构,并且实现了前向推理过程。 经典目标检测YOLO系列(二)YOLOV2的复现(1)总体…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...