SpringBoot系列教程23--整合SpringMVC之自定义JSON序列化器和反序列化器

一.序列化与反序列化简介

1.概述

通过上一章节,我们学习到,在SpringMVC框架中使用HttpMessageConverter转换器类来转换http请求和响应。

HttpMessageConverter在转换http请求和响应的过程中,就需要将对象转为json,也就是序列化;或者将json转为对象,也就是反序列化。

2.@JsonComponent注解

在Spring Boot中默认是使用Jackson进行序列化和反序列化JSON数据的,那么除了可以用默认的之外,我们也可以编写自己的JsonSerializer和JsonDeserializer类,来进行自定义操作。

自定义序列化器(serializers)通常是通过Module方式注册到Jackson中,但在Spring Boot中提供了@JsonComponent注解这一替代方式,它能帮我们更为轻松的将序列化器注册为Spring Beans

我们可以直接在JsonSerializer 或 JsonDeserializer类上使用 @JsonComponent注解,该注解允许我们将带该注解的类公开为Jackson序列化器或反序列化器,而无需再手动将其添加到ObjectMapper。我们还可以在包含序列化程序/反序列化程序作为内部类的类上使用它,如下例所示:

import java.io.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import org.springframework.boot.jackson.*;

@JsonComponent
public class Example {

    public static class Serializer extends JsonSerializer<SomeObject> {
        // ...
    }

    public static class Deserializer extends JsonDeserializer<SomeObject> {
        // ...
    }

}

ApplicationContext 中的所有 @JsonComponent bean都会自动注册到Jackson。因为 @JsonComponent 是用 @Component进行注解的,所以应用通常的组件扫描规则。

SpringBoot还提供了JsonObjectSerializer和JsonObjectDeserializer 基类,它们在序列化对象时为标准的Jackson版本提供了有用的替代方案。

二.序列化与反序列化实现

1.创建新项目

为了讲解序列化与反序列化的实现,我们创建一个新的工

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值