零基础学习做网站,wordpress 输出菜单,江苏品牌网站建设,wordpress ueditor 代码 转义目录
1.jackson
2.fastjson
3.总结 1.jackson
jackson是spring mvc默认的JSON解析方法#xff0c;前端的数据序列化处理之后#xff0c;后端经过反序列化处理可以直接使用实体对象进行接收。后端接口返回实体对象#xff0c;经过序列化处理后前端可以接收并进行处理。
…目录
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(patternyyyy-MM-dd HH:mm:ss,timezone GMT8)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博客