孤独酒馆|jackson学习之六:常用类注解

欢迎访问我的github
内容:所有原创文章分类和汇总 , 及配套源码 , 涉及Java、Docker、Kubernetes、DevOPS等;
本篇概览

  • 本文是《jackson学习》系列的第六篇 , 继续学习jackson强大的注解能力 , 本篇学习的是常用的类注解 , 并通过实例来加深印象 , 下图是常用类注解的简介:

孤独酒馆|jackson学习之六:常用类注解
  • 接下来逐个学习;
源码下载如果您不想编码 , 可以在GitHub下载所有源码 , 地址和链接信息如下表所示():
孤独酒馆|jackson学习之六:常用类注解
  • 这个git项目中有多个文件夹 , 本章的应用在jacksondemo文件夹下 , 如下图红框所示:

孤独酒馆|jackson学习之六:常用类注解
  • jacksondemo是父子结构的工程 , 本篇的代码在annotation子工程中 , 里面的classannonation这个package下 , 如下图:

孤独酒馆|jackson学习之六:常用类注解JsonRootName
  1. JsonRootName的设置如下:
@JsonRootName(value = "http://kandian.youth.cn/index/aaabbbccc")static class Test { private String field0; public String getField0() { return field0; }public void setField0(String field0) { this.field0 = field0; }}
  1. 开启root对象特性方法 , 以及序列化结果如下图 , 可见JsonRootName注解的value值aaabbbccc成了root对象的key:

孤独酒馆|jackson学习之六:常用类注解
  1. 开启root对象的反序列化特性后 , 用上述红框3中的json字符串可反序列化成Test类的实例;
  2. 关于root对象的序列化和反序列化特性 , 可以参考《jackson学习之四:WRAP ROOT(root对象) 》;
JsonIgnoreProperties
  1. 该注解用于指定序列化和反序列化时要忽略的字段 , 如下所示 , Test类的field1和field2被设置为不参与序列化和反序列化操作:
@JsonIgnoreProperties({"field1", "field2"})static class Test {private String field0;private String field1;private String field2;// 省去get、set、toString方法
  1. 演示代码是JsonIgnorePropertiesSeriallization.java , 执行结果如下图:

孤独酒馆|jackson学习之六:常用类注解
  1. 保持Test.java的JsonIgnoreProperties注解不变 , 再试试反序列化 , 对应的代码在JsonIgnorePropertiesDeserializer.java , 如下图 , 反序列化后field1和field2依然是null , 也就是说反序列化操作中 , field1和field2都被忽略了:

孤独酒馆|jackson学习之六:常用类注解JsonIgnoreType
  1. 被该注解修饰的类 , 作为其他类的成员变量时 , 不论是序列化还是反序列化都被忽略了;