当前位置: 首页 > news >正文

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博客 

http://www.lryc.cn/news/283608.html

相关文章:

  • 书生·浦语大模型实战营第五节课笔记及作业
  • 如何在CentOS 7 中基于OpenSSL 3.0 搭建Python 3.0 环境
  • 爬虫接口获取外汇数据(汇率,外汇储备,贸易顺差,美国CPI,M2,国债利率)
  • Spring Cloud和微服务架构的关系
  • C++:通过ofstream写入二进制文件内容
  • 系统配置dns主从服务器
  • 【git】解决网络连接问题
  • 限制API接口访问速率
  • 广东省第三届职业技能大赛“网络安全项目”B模块--数字取证解析
  • 全链路压力测试:现代软件工程中的重要性
  • 【计算机网络】难点、易遗忘点总结
  • 谷达冠楠科技:抖音开网店新手小白可以卖的产品
  • 爬虫案例—根据四大名著书名抓取并存储为文本文件
  • 阿里云容器服务助力万兴科技 AIGC 应用加速
  • STM32F103标准外设库——认识STM32(一)
  • 设计模式——1_5 享元(Flyweight)
  • kafka系列(二)
  • Ubuntu20.04安装配置OpenCV-Python库并首次执行读图
  • 经典目标检测YOLO系列(二)YOLOV2的复现(2)正样本的匹配、损失函数的实现及模型训练
  • 半波整流电路原理详解+参数与计算公式
  • GZ036 区块链技术应用赛项赛题第3套
  • LeetCode142.环形链表II
  • 触摸按键控制LED灯
  • QT自定义控件0-360°刻度尺
  • c语言0基础笔记
  • Vue 中 Element UI 的 el-table 组件实现动态表头和内容
  • 安装sqlserver后—无法连接到 127.0.0.1,1433\sqlexpress
  • Python JSON解析校验格式,输出错误信息的工具
  • 物联网网关与plc怎么连接?
  • HANA:存储过程(Procedures) DEBUG