美文网首页Java 杂谈
Java Jackson子类反序列化

Java Jackson子类反序列化

作者: 十六郎 | 来源:发表于2018-11-30 17:37 被阅读0次

本篇主要讲述在Service通过http互相调用期间,封装子类对象并完成反序列化还原Object的过程。
参考: https://www.baeldung.com/jackson-inheritance

lib:

  • javax.ws.rs;
  • com.fasterxml.jackson;

父类

@JsonIgnoreProperties
@JsonTypeInfo(
    use = JsonTypeInfo.Id.NAME,
    include = JsonTypeInfo.As.PROPERTY,
    property = "type")
@JsonSubTypes({
    @JsonSubTypes.Type(value = BMW.class, name = "com.package1.BMW"),
    @JsonSubTypes.Type(value = Benz.class, name = "com.package1.Benz")
})
public abstract class Car {
      private String brandName;
      public abstract void drive();
}

注意点子类的name若不以全路径命名比如直接name = "BMW",有可能会报错

子类

注意点子类需要有默认构造函数

解析还原

Case1: 还原单个JSON String

封装场景:

public class CarSquare{
   String address;
    List<Car> cars;
}
ObjectMapper mapper = new ObjectMapper();
mapper.enableDefaultTyping();
CarSquare carSquare =  mapper.readValue(jsonDataString, CarSquare.class);

Case2: 还原JSON List

ObjectMapper mapper = new ObjectMapper();
mapper.enableDefaultTyping();
JavaType javaType = mapper.getTypeFactory().constructParametricType(ArrayList.class, Car.class);
List<Car> cars =  mapper.readValue(jsonDataString, javaType); 
for(Car car: cars){
    if(car.getBrandName.equals("BMW")){
           BMW bmw = (BMW)car;
    }
}

相关文章

  • Java Jackson子类反序列化

    本篇主要讲述在Service通过http互相调用期间,封装子类对象并完成反序列化还原Object的过程。参考: h...

  • Java Jackson ObjectMapper

    Java Jackson ObjectMapper ObjectMapper 将Json反序列化成Java对象的重...

  • Jackson的基本用法

    Jackson 是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架。Jackson 社...

  • 自定义Jackson序列化器进行数据脱敏

    前言 Jackson 是用来序列化和反序列化 json 的 Java 的开源框架。Spring MVC 的默认 j...

  • Jackson忽略空字段

    1.概述 本文将介绍如何设置Jackson,使其在序列化java类时忽略空字段。 更多Jackson文章-请转到J...

  • Jackson 入门

    Jackson 入门 1. 快速参考 1.1 将java对象转化为json串(序列化), writeValue(....

  • java json 库之 jackson

    jackson 是一个 java json 库,提供了完备的 json 解析,序列化以及反序列化功能 依赖配置 在...

  • SpringMVC-Jackson

    SpringMVC集成Jackson即为由Jackson来反序列化@RequestBody中的内容,序列化@Res...

  • jackson日期序列化与反序列化

    jackson日期序列化与反序列化

  • java 8 LocalDateTime

    jackson处理JodaTime的序列化和反序列化 引入jackson包 类属性添加对应注解 3、注解类 序列化...

网友评论

    本文标题:Java Jackson子类反序列化

    本文链接:https://www.haomeiwen.com/subject/lfnhcqtx.html