• SpringBoot解决LocalDateTime返回数据为数组问题


    现象:

    在SpringBoot项目中,接口返回的数据出现LocalDateTime对象被转换成了数组
    在这里插入图片描述

    原因分析:

    默认序列化情况下会使用SerializationFeature.WRITE_DATES_AS_TIMESTAMPS。使用这个解析时就会打印出数组。

    解决方法:

    在WebMvcConfig配置类中扩展Spring Mvc的消息转换器,在此消息转换器中使用提供的对象转换器进行Java对象到json数据的转换:
    在这里插入图片描述

    package com.demo.config
    
    import com.fasterxml.jackson.annotation.JsonInclude;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.SerializationFeature;
    import com.fasterxml.jackson.databind.module.SimpleModule;
    import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.http.converter.HttpMessageConverter;
    import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    import java.util.List;
    
    @Configuration // 配置类
    @EnableWebMvc
    public class WebConfig implements WebMvcConfigurer {
        @Override
        public void extendMessageConverters(List> converters) {
            MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
            ObjectMapper objectMapper = jackson2HttpMessageConverter.getObjectMapper();
            // 不显示为null的字段
            objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
            SimpleModule simpleModule = new SimpleModule();
            simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
            simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
            objectMapper.registerModule(simpleModule);
            objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
            jackson2HttpMessageConverter.setObjectMapper(objectMapper);
            // 放到第一个
            converters.add(0, jackson2HttpMessageConverter);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    解决后再查看:
    在这里插入图片描述

  • 相关阅读:
    牛客刷题<九>使用子模块实现三输入数的大小比较
    2023东北电力大学计算机考研信息汇总
    linux概念基础认识(基于阿里云ecs服务器操作)
    Windows与Linux之间的文件互传
    使用springcloud-seata解决分布式事务问题-2PC模式
    我用 ChatGPT 写 2023 高考语文作文:全国卷(一)
    Java基础 | 如何用Javadoc Tool写规范正确的java注释
    JAVA 同城服务同城货运搬家小程序系统开发优势
    日期类的实现
    【代码随想录】二刷-字符串
  • 原文地址:https://blog.csdn.net/weixin_41423450/article/details/133654062