首页 > 其他分享 >SpringBoot | Jackson序列化

SpringBoot | Jackson序列化

时间:2023-09-27 09:34:45浏览次数:46  
标签:Jackson SpringBoot JSON https new 序列化 objectMapper poetize

欢迎参观我的博客,一个Vue 与 SpringBoot结合的产物:https://poetize.cn

原文链接:https://poetize.cn/article?id=37

依赖

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.10.0</version>
</dependency>

Jackson注解

  • @JsonProperty("name"):把该属性名称序列化为另外一个名称
  • @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"):序列化时间为指定格式
  • @JsonIgnore:进行JSON操作时忽略该属性
  • @JsonInclude(JsonInclude.Include.NON_NULL):序列化仅包含非NULL属性

SpringBoot的Json消息转换器

@Configuration
public class WebConfig implements WebMvcConfigurer {

    /**
     * MappingJackson2HttpMessageConverter是一个Spring消息转换器,用于在Web应用程序中处理请求和响应内容。
     */
    @Bean
    public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();

        ObjectMapper objectMapper = new ObjectMapper();

        //设置日期格式
        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
        objectMapper.setTimeZone(TimeZone.getDefault());

        //所有字段都序列化,包括空、NULL、默认值
        objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);

        //BigDecimal对象的值将以纯文本形式写入JSON,即不会使用科学计数法或其他格式来表示。
        objectMapper.configure(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN, true);
        //序列化对象为 JSON 时,是否忽略那些在目标 JSON 中没有对应字段名的属性。
        objectMapper.configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true);
        //反序列化(将 JSON 转换为 Java 对象)时,是否在 JSON 中存在但在目标 Java 类中没有相应属性时引发异常。
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

        //返回Long转换为String
        SimpleModule simpleModule = new SimpleModule();
        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
        simpleModule.addSerializer(long.class, ToStringSerializer.instance);
        objectMapper.registerModule(simpleModule);

        mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper);

        //设置中文编码格式
        List<MediaType> list = new ArrayList<>();
        list.add(MediaType.APPLICATION_JSON);
        mappingJackson2HttpMessageConverter.setSupportedMediaTypes(list);

        return mappingJackson2HttpMessageConverter;
    }
}

标签:Jackson,SpringBoot,JSON,https,new,序列化,objectMapper,poetize
From: https://www.cnblogs.com/loveer/p/17731913.html

相关文章

  • 新手指引:前后端分离的springboot + mysql + vue实战案例
    案例说明:使用springboot+mysql+vue实现前后端分离的用户查询功能。1、mysql:创建test数据库->创建user数据表->创建模拟数据;2、springboot:配置mysql->使用mybatis操作mysql数据库->接口开发;3、vue:使用axios访问接口->user数据展示;1、mysql数据库1.1、安......
  • springboot大文件上传、分片上传、断点续传、秒传的实现
    对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传,从上传的效率来看,利用多线程并发上传能够达到最大效率。 本文是基于springboot+vue实现的文件上传,本文主要介绍服务端实现文件上传的......
  • 浅谈UE4的序列化
    【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!一、结合用例浅谈UE4序列化1.1需求我写文章,不爱一上来就讲道理、贴代码,而是喜欢先提需求、提问题,然后围绕这个需求的实现再一步步挖掘源码。我们......
  • 基于springboot学生请假管理系统-计算机毕业设计源码+LW文档
    摘要:本学生请假管理系统是针对目前学生请假的实际需求,从实际工作出发,对过去的学生请假管理系统存在的问题进行分析,完善用户的使用体会。采用计算机系统来管理信息,取代人工管理模式,查询便利,信息准确率高,节省了开支,提高了工作的效率。本系统结合计算机系统的结构、概念、模型、原理......
  • SpringBoot 整合 Devtools 热部署工具
    什么是热部署实际开发过程中,修改应用的业务逻辑代码时常常需要重启应用,这显得非常繁琐,降低了开发效率,所以热部署对于开发来说显得十分必要。应用启动后会把编译好的Class文件加载到虚拟机中,正常情况下载项目修改了Java源文件是需要全部重新编译并加载(需要重启应用),而热部署......
  • SpringBootAdmin_监控
    监控的意义监控服务状态是否宕机监控服务运行指标(内存、虚拟机、线程、请求等)监控日志管理服务(服务下线)监控的实施方式大部分监控平台都是主动拉取监控信息,而不是被动地等待应用程序传递信息应用程序要设置:是否能被监控、开放那些信息给显示监控信息的服务器(监控平台......
  • SpringBoot学习1(项目部署以及创建报错的解决)
    1.SpringBoot设计目的:简化Spring应用的初始搭建以及开发过程.2.空项目创建2.1查看更改自己的maven版本file-->settings有时候这里的mavenhomeusersettingsfilelocal..不是自己的maven文件夹,记得修改过来。 2.2创建modulefile-->projectstructure如果有一个module的......
  • SpringBoot MongoDB操作封装
    1.引入Jar包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>2.MongoDbHelper操作/***MongoDBOperationclass*......
  • 使用SpringBoot+Vue3的形式实现管理系统的添加功能
    1、查看页面形式2、使用element-plus组件为添加页面引入form表单成功引入form表单组件:3、更改成自己需要的形式4、测试是否可以拿到文本框的数据拿到数据啦!!(记得vue3这里:console.log(form)//不要写this```)#5、vue界面的添加代码<el-form-item>......
  • SpringBoot WebSocket STOMP
    SpringBootWebSocketSTOMP关键词:Springboot,WebSocket,STOMP,broadcast,sendToUser,MessageMapping,SubscribeMapping,convertAndSendToUserSTOMP是一种发布订阅的模式,被订阅者发布消息以广播形式发送。如果需要一对一发送或者说指定某个客户端发送,springboot提供了con......