https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
名称 | 链接 | 备注 |
---|---|---|
项目主页 | 该项目在GitHub上的主页 | |
git仓库地址(https) | 该项目源码的仓库地址,https协议 | |
git仓库地址(ssh) | git@github.com:zq2599/blog_demos.git | 该项目源码的仓库地址,ssh协议 |
@JsonRootName(value = "aaabbbccc")
static class Test {
private String field0;
public String getField0() { return field0; }
public void setField0(String field0) { this.field0 = field0; }
}
@JsonIgnoreProperties({"field1", "field2"})
static class Test {
private String field0;
private String field1;
private String field2;
// 省去get、set、toString方法
@JsonIgnoreType
static class TestChild {
private int value;
// 省去get、set、toString方法
static class Test {
private String field0;
private TestChild field1;
// 省去get、set、toString方法
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY)
public class College {
private String name;
private String city;
protected int age = 100;
ANY // 所有
NON_PRIVATE // private之外的
PROTECTED_AND_PUBLIC // protected和public的(此时privte和默认的package access时不能被自动识别的)
PUBLIC_ONLY // public的
NONE // 禁止自动识别
DEFAULT // 默认的,用于继承父类的自动识别的范围
static class Test {
private String field0;
private String field1;
private String field2;
// 省去get、set、toString方法
@JsonPropertyOrder({"field2", "field0", "field1"})
static class Test {
private String field0;
private String field1;
private String field2;
// 省去get、set、toString方法
ALWAYS // 默认策略,任何情况都执行序列化
NON_NULL // 非空
NON_ABSENT // null的不会序列化,但如果类型是AtomicReference,依然会被序列化
NON_EMPTY // null、集合数组等没有内容、空字符串等,都不会被序列化
NON_DEFAULT // 如果字段是默认值,就不会被序列化
CUSTOM // 此时要指定valueFilter属性,该属性对应一个类,用来自定义判断被JsonInclude修饰的字段是否序列化
USE_DEFAULTS // 当JsonInclude在类和属性上都有时,优先使用属性上的注解,此时如果在序列化的get方法上使用了JsonInclude,并设置为USE_DEFAULTS,就会使用类注解的设置
至此,Jackson的常用类注解的学习和实战就完成了,接下来的文章,我们会学习常用的属性注解;