@JsonInclude(NON_ABSENT)可用于排除空值和“不存在”的值。此处的不存在值表示引用空值的非空引用类型值(例如java.utl.concurrent.atomic.AtomicReference)。
例子
对象
@JsonInclude(JsonInclude.Include.NON_ABSENT)
public class Employee {
private String name;
private String dept;
private AtomicReference<String> address;
}
Main类
public class ExampleMain {
public static void main(String[] args) throws IOException {
Employee employee = Employee.of("Trish", null, new AtomicReference<>());
ObjectMapper om = new ObjectMapper();
String jsonString = om.writeValueAsString(employee);
System.out.println(jsonString);
}
}
{"name":"Trish"}
不加NON_ABSENT注释
如果我们根本不使用@JsonInclude,那么上面示例的输出将是:
{“ name”:“ Trish”,“ dept”:null,“ address”:null}
如果我们使用@JsonInclude(JsonInclude.Include.NON_NULL),则输出为:
{“ name”:“ Trish”,“ address”:null}
本文介绍如何使用@JsonInclude(NON_ABSENT)注解来排除Java对象中空值及引用类型的空值在JSON序列化过程中的输出。通过具体示例对比了不同@JsonInclude配置的效果。
1701

被折叠的 条评论
为什么被折叠?



