2. 使用@JsonIgnoreProperties 在类级别忽略字段
我们可以在类级别忽略特定字段,使用@JsonIgnoreProperties注释并指定字段:
package ;
import ;
@JsonIgnoreProperties(value = {
"id",
"firstName"
})
public class CustomerDTO {
private final String id;
private final String firstName;
private final String lastName;
public CustomerDTO(String id, String firstName, String lastName) {
= id;
= firstName;
= lastName;
}
public String getId() {
return id;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
}
让我们用main()方法测试上面的代码,注意在对象被写入 JSON 之后,该字段确实不是输出的一部分:
package ;
import ;
import ;
public class IgnoreFieldTest {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
CustomerDTO dtoObject = new CustomerDTO("CUST100", "Tony", "Stark");
String dtoAsString = (dtoObject);
(dtoAsString);
}
}
输出:
{"lastName":"Stark"}
请注意,我们忽略了CustomerDTO的两个字段“id”和“firstName” ,只打印了“lastName”。
3. 使用@JsonIgnore 在字段级别忽略字段
我们也可以直接通过字段上的@JsonIgnore注解直接忽略字段:
package ;
import ;
public class CustomerDTO {
@JsonIgnore
private final String id;
@JsonIgnore
private final String firstName;
private final String lastName;
public CustomerDTO(String id, String firstName, String lastName) {
= id;
= firstName;
= lastName;
}
public String getId() {
return id;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
}
让我们用main()方法测试上面的代码,注意在对象被写入 JSON 之后,该字段确实不是输出的一部分:
package ;
import ;
import ;
public class IgnoreFieldTest {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
CustomerDTO dtoObject = new CustomerDTO("CUST100", "Tony", "Stark");
String dtoAsString = (dtoObject);
(dtoAsString);
}
}
输出:
{"lastName":"Stark"}
请注意,我们使用@JsonIgnore注释忽略了CustomerDTO的两个字段“id”和“firstName” ,并且只打印了“lastName”。