第一种方法:
// 加上即可
// 用于字段和方法get和set方法
// 用于字段就不进行序列化和反序列化
// 用于get方法不进行序列化
// 用于set方法不进行反序列化
@JsonIgnore
public class Test {
private Integer id;
private String name;
@JsonIgnore
private String city;
}
第二种方法:
// 用于类上,对字段不进行序列化和反序列化
@JsonIgnoreProperties
// 如下即为对city和id字段不进行序列化和反序列化
@JsonIgnoreProperties({"city", "id"})
public class Test {
private Integer id;
private String name;
private String city;
}
第三种方法:
// 被该注解修饰的类,
// 作为其他类的成员变量时,不论是序列化还是反序列化都被忽略了;
@JsonIgnoreType
@JsonIgnoreType
public class TestChild {
private int value;
}
// Test类进行序列化和反序列时,
// 字段child被忽略
public class Test {
private String name;
private TestChild child;
}
第四种方法:
// 根据访问权限修饰符,对字段是否进行序列化和反序列化
@JsonAutoDetect
// 只对访问权限修饰符为public的字段进行序列化和反序列化
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY)
public class College {
private String name;
private String city;
protected int age;
}
// fieldVisibility属性有以下值可选
ANY // 所有
NON_PRIVATE // private之外的
PROTECTED_AND_PUBLIC // protected和public的(此时privte和默认的package access时不能被自动识别的)
PUBLIC_ONLY // public的
NONE // 禁止自动识别
DEFAULT // 默认的,用于继承父类的自动识别的范围