📅  最后修改于: 2023-12-03 14:53:22.315000             🧑  作者: Mango
在使用 Jackson 序列化 Java 对象时,有时希望在某些情况下忽略 null 值,以减少 JSON 的大小或避免不必要的嵌套。
可以使用 @JsonInclude
注解来配置 Jackson 忽略 null 值。
public class User {
private String name;
@JsonInclude(JsonInclude.Include.NON_NULL)
private Integer age;
// getters and setters
}
在上面的例子中, age
字段配置了 @JsonInclude
注解,指明只有当 age
不为 null 时才会被序列化输出。
在序列化时,使用 ObjectMapper
将 Java 对象转换为 JSON 字符串:
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(new User("Alice", null));
System.out.println(json); // {"name":"Alice"}
从上面的输出可以看到,只有 name
字段被输出了,而 age
被忽略了。
可以在 Jackson 的全局配置中设置默认的 JsonInclude.Include
:
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
这个配置会影响所有 Java 对象在序列化时的行为。