孤独酒馆|jackson学习之六:常用类注解( 二 )
@JsonIgnoreTypestatic class TestChild {private int value;// 省去get、set、toString方法
- 如下所示 , 再把TestChild作为Test类的成员变量:
static class Test {private String field0;private TestChild field1;// 省去get、set、toString方法
- 序列化操作的代码是JsonIgnoreTypeSerialization.java , 执行结果如下图 , 可见类型为TestChild的field1字段 , 在序列化的时候被忽略了:
- 再来试试反序列化 , 代码在JsonIgnoreTypeDeserializer.java , 如下图 , 可见带有注解JsonIgnoreType的类作为成员变量 , 在反序列化时会被忽略:
JsonAutoDetect
- 序列化和反序列化时自动识别的范围 , 如下:
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY)public class College {private String name;private String city;protected int age = 100;
- fieldVisibility属性有以下值可选:
ANY // 所有NON_PRIVATE // private之外的PROTECTED_AND_PUBLIC // protected和public的(此时privte和默认的package access时不能被自动识别的)PUBLIC_ONLY // public的NONE // 禁止自动识别DEFAULT // 默认的 , 用于继承父类的自动识别的范围
- 验证 , 如下图 , College类设置了注解 , fieldVisibility是PUBLIC_ONLY , 红框中显示age字段是protected类型的:
- 序列化结果如下图红框 , age字段不是public , 所以没有输出:
- fieldVisibility改成NON_PRIVATE再试试:
- 如下图红框 , age不是private , 所以可以被序列化:
JsonPropertyOrder
- 这个注解好理解 , 就是指定序列化的顺序 , 注意该注解仅在序列化场景有效;
- 先看看没有JsonPropertyOrder注解时的序列化顺序 , Test.java如下所示 , 是和代码的顺序一致的:
static class Test {private String field0;private String field1;private String field2;// 省去get、set、toString方法
- 此时对Test的实例做序列化操作 , 结果如下图 , 顺序和代码顺序一致:
推荐阅读
- 孤独酒馆|NVIDIA 助力文远知行在自动驾驶的路上“乘风破浪”
- 孤独酒馆|日本研究机构拆解华为P30 Pro:美企零部件比例不到1%
- 泽宇讲历史|女儿做了外国皇后,不愿向日本求助,49岁孤独去世,父亲是华人
- 环球网|“世界上最孤独的大象”被解救,曾被关了整整35年
- 新鲜事儿|却被渣男抛弃终身不孕,而今孤独一人,她是80年代最火的“琼瑶女郎”
- “世界上最孤独的大象”被解救,曾被关了整整35年
- 世界上最孤独的大象被解救:“世界上最孤独的大象”被解救,曾被关了整整35年
- kaavan|从小被当赚钱工具,35年后,世界上最孤独的大象终于解放了……
- 「孤独」九月,好好生活,好好爱
- 灵魂伴侣|当偶像有多孤独?“韩国最美的男人”38岁改变形象,曾经的灵魂伴侣已转嫁他人