首页 > 其他分享 >解决LocalDateTime返回前端数据为数组结构的问题

解决LocalDateTime返回前端数据为数组结构的问题

时间:2024-08-11 12:37:56浏览次数:14  
标签:FORMAT DEFAULT 前端 TIME public 数组 LocalDateTime new class

问题现象

image

解决办法如下

1、使用@JsonFormat
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

image

结果

image

2、使用SpringMVC提供的ExtendMessageConverters
@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    /**
     * 扩展消息转换器
     */
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        log.info("扩展消息转换器~~~");
        // 创建一个消息转换器
        MappingJackson2HttpMessageConverter httpMessageConverter = new MappingJackson2HttpMessageConverter(new JacksonObjectMapper());
        // 存入SpringMVC容器
        converters.add(0, httpMessageConverter);
    }
}
public class JacksonObjectMapper extends ObjectMapper {

    public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
    public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    // public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm";
    public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";

    public JacksonObjectMapper() {
        super();
        // 收到未知属性时不报异常
        this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);

        // 反序列化时,属性不存在的兼容处理
        this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

        SimpleModule simpleModule = new SimpleModule()
                .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)))
                .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));

        // 添加自定义序列化器和反序列化器
        this.registerModule(simpleModule);
    }
}
结果

image

标签:FORMAT,DEFAULT,前端,TIME,public,数组,LocalDateTime,new,class
From: https://www.cnblogs.com/ybbit/p/18353255

相关文章

  • 25版王道数据结构课后习题详细分析 第三章栈、队列和数组 3.2 队列 选择题部分
    一、单项选择题————————————————————————————————————————解析:栈和队列的逻辑结构都是线性结构,都可以采用顺序存储或链式存储,C显然也错误。只有D才是栈和队列的本质区别,限定表中插入和删除操作位置的不同。正确答案:D—————......
  • Java 入门探索者09(数组)
    Java的数组是一种固定大小、有序且相同类型元素的集合。它可以存储同一种数据类型的多个元素,并按照索引顺序访问这些元素。Java数组的特点包括:1.长度固定:一旦数组被创建,其长度就不能修改。可以通过数组的length属性来获取数组的长度。2.有序性:数组中的元素按照索引顺序排......
  • 两数之和Ⅱ——输入有序的数组
    给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列  ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1<=index1<index2<=numbers.length 。以长度为2的整数......
  • 【前端】Typescript使用教程
    目录一、概述二、 TypeScript开发环境2.1安装和设置2.2编译和运行2.3工具和编辑器支持三、 TypeScript基本语法3.1基本类型3.2接口3.3类3.4函数3.5泛型3.6模块3.7高级类型四、TypeScript示例4.1枚举(Enumerations) 4.2类型别名(TypeAliases)4.3......
  • 前端:CSS选择器(级联/层叠样式单)--用作装饰
    1.选择器:给谁加样式三种样式如果对于不同的方面,效果叠加,如果是相同的方面,行内样式的优先级最高,外部样式和内部样式的优先级相等,谁在上面先用谁2.css的语法规则:selector{property:value;property:value;}/*基本选择器*//*1.元素选择器根据元素名称做......
  • 010.Vue3入门,数组变化侦听,实时在界面显示变化后的数据
    1、代码如下:<template><h3>数组变化侦听</h3><button@click="addListHandle">添加数据</button><ul><liv-for="(item,index)ofnames":key="index">{{item}}</li></ul>&l......
  • 前端cookie为什么无法传递给后端
    异常描述在进行登录权限校验时,需要使用cookie。然而,在设置cookie时会出现以下异常,导致后端session为空异常。前端已经设置WITH_CREDENTIALS:true。解决办法将访问的127.0.0.1修改为使用localhost进行访问,就可以携带上cookie了。可能原因1.Cookie的域名限制Cookie......
  • C语言指针变量详解(函数指针,函数指针数组,转移表)
    指针变量 1.字符指针变量在指针的类型中我们知道有⼀种指针类型为字符指针char*;⼀般使⽤:intmain(){charch='w';char*pc=&ch;*pc='w';return0;}还有⼀种使⽤⽅式如下:intmain(){const......
  • C语言指针与数组详解(指针数组,数组指针,⼆级指针)
    指针与数组1.数组名的理解1.1结论:数组名是数组⾸元素的地址,但是有2个例外。      •sizeof(数组名),sizeof中单独放数组名,这⾥的数组名表⽰整个数组,计算的是整个数组的⼤⼩     •&数组名,这⾥的数组名表⽰整个数组,取出的是整个数组的地址(整个数......
  • Web前端开发环境搭建
    安装node.js和npm上官网下载:https://nodejs.org/zh-cn不管macOS还是Windows,下载的都是安装程序,按提示完成即可。安装前的提示如下:Thispackagewillinstall: • Node.jsv20.16.0to/usr/local/bin/node • npmv10.8.1to/usr/local/bin/npm安装成功后,可看到如......