备案 控制台
学习
实践
活动
专区
工具
TVP
写文章
专栏首页 码农架构 如何通过Jackson注解@JsonTypeInfo解决多态反序列化问题?
1 0

海报分享

原创

如何通过Jackson注解@JsonTypeInfo解决多态反序列化问题?

Jackson是Spring Boot(SpringBoot)默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库。有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制。

它提供了很多的JSON数据处理方法、注解,也包括 流式API、树模型、数据绑定 ,以及复杂数据类型转换等功能。它虽然简单易用,但绝对不是小玩具。

本篇主要介绍一下最近遇到的一个问题,在Java 类继承的情况下如何实现父类及子类的JSON序列化与反序列化。

继承关系对象构建

public abstract class Shape {
}
@Data
public class Circle extends Shape {
    int radius;
    public static Circle of(int radius) {
        Circle circle = new Circle();
        circle.setRadius(radius);
        return circle;
}
@Data
public class Rectangle extends Shape {
    private int w;
    private int h;
    public static Rectangle of(int w, int h) {
        Rectangle rectangle = new Rectangle();
        rectangle.setW(w);
        rectangle.setH(h);
        return rectangle;