• 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

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

  • 相关阅读:
    索尼RSV文件怎么恢复为MP4视频
    如何解决git clone http/https仓库失败(403错误)
    6. 使用 Spring Boot进行开发(Developing with Spring Boot)
    C语言基础知识入门
    大二Web课程设计——动漫海贼王(可以很好的应付老师的作业)
    Opencv for unity 下载
    计算机毕业设计Java校园快递代领系统(系统+源码+mysql数据库+lw文档)
    Vue.js正式环境中配置多个请求的URL
    08 【Props 组件事件】
    鸿蒙系统和MIUI之类的系统有何区别?
  • 原文地址:https://blog.csdn.net/weixin_41423450/article/details/133654062