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

数据库取出来的日期格式是数组格式,序列化日期格式

序列化前,如图所示:
在这里插入图片描述
解决方式,序列化日期(localdatetime)格式

步骤一、添加序列化类

package com.abliner.test.common.configure;import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;import java.io.IOException;
import java.lang.reflect.Type;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class LocalDateTimeSerializer implements ObjectSerializer {public static final LocalDateTimeSerializer instance = new LocalDateTimeSerializer();private static final String defaultPattern = "yyyy-MM-dd HH:mm:ss";public LocalDateTimeSerializer() {}@Overridepublic void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {SerializeWriter out = serializer.out;if (object == null) {out.writeNull();} else {LocalDateTime result = (LocalDateTime) object;out.writeString(result.format(DateTimeFormatter.ofPattern(defaultPattern)));}}}

步骤二

package com.abliner.test.common.configure;import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.ToStringSerializer;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;@Configuration
public class WebMvcConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("http://192.168.1.10:8081")// 是否发送Cookie.allowCredentials(true).allowedMethods("GET", "POST", "PUT", "DELETE");}@Bean//使用@Bean注入fastJsonHttpMessageConvertpublic HttpMessageConverter fastJsonHttpMessageConverters() {//定义一个Convert转换消息的对象FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();FastJsonConfig fastJsonConfig = new FastJsonConfig();fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue);SerializeConfig.globalInstance.put(Long.class, ToStringSerializer.instance);SerializeConfig serializeConfig = SerializeConfig.globalInstance;serializeConfig.put(LocalDateTime.class, LocalDateTimeSerializer.instance);fastJsonConfig.setSerializeConfig(serializeConfig);fastConverter.setFastJsonConfig(fastJsonConfig);/*但是MappingJackson2HttpMessageConverter里面支持的MediaTypes为application/json*/List<MediaType> fastMediaTypes = new ArrayList<>();fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);fastConverter.setSupportedMediaTypes(fastMediaTypes);HttpMessageConverter<?> converter = fastConverter;return converter;}@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {/*排除掉Jackson*/for (int i = converters.size() - 1; i >= 0; i--) {if (converters.get(i) instanceof MappingJackson2HttpMessageConverter) {converters.remove(i);}}converters.add(fastJsonHttpMessageConverters());}/*** 处理静态资源无法访问** @param registry*/@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {// 解决静态资源无法访问registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");// 解决swagger无法访问registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");// 解决swagger的js文件无法访问registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}}

主要是添加如图所示代码:
在这里插入图片描述
最后序列化完成示例图:
在这里插入图片描述

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

相关文章:

  • 【Android】创建一个可以在屏幕上拖动的悬浮窗
  • SPI NAND、SD NAND和eMMC对比—MK米客方德
  • “深入解析:YUM仓库、RPM包与源码编译——Linux软件安装方式全面对比“
  • 中电金信:银行业私有云何去何从
  • Adobe Acrobat Pro或者Adobe Acrobat Reader取消多标签页显示,设置打开一个pdf文件对应一个窗口。
  • 从0开始学习pyspark--pyspark的数据读取[第4节]
  • 极速升级:MacOS系统中Pip源的切换指南
  • 服务器的分类,主流服务器的应用场景
  • Objects and Classes (对象和类)
  • 从单点到全景:视频汇聚/安防监控EasyCVR全景视频监控技术的演进之路
  • Java学习 -Golang开发环境+目录结构+编译+部署
  • Redis 典型应用——缓存(缓存预热,穿透,雪崩,击穿)
  • Sharding-JDBC分库分表的基本使用
  • 7月信用卡新规下:信用卡欠的钱不用还了?
  • 坑——python的redis库的decode_responses设置
  • 从项目中学习Bus-Off的快慢恢复
  • 视频参考帧和重构帧复用
  • js修改scss变量
  • 【中霖教育怎么样】报考注册会计师有年龄限制吗?
  • PHP验证日本手机电话号码
  • Qt 配置ASan
  • MySQL常用操作命令大全
  • 有人物联的串口服务器USR-TCP232-410S基本测试通信和使用方案(485串口和232串口)
  • 二维码登录的原理
  • 归并排序详解(递归与非递归)
  • 计算机系统基础(二)
  • vue根据文字长短展示跑马灯效果
  • leetcode-21-回溯-全排列及其去重
  • 如何根据两个关键字查询报错日志的位置
  • 短视频预算表:成都柏煜文化传媒有限公司