Jackson:在序列化期间跳过空值
使用 Jackson 序列化对象时,可能需要排除具有空值的字段以优化数据大小并提高可读性。为此,Jackson 提供了两种方法来实现此行为:
1.全局配置:
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; //... ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false); // disable serialization of null values
此设置全局适用于 ObjectMapper 实例执行的所有序列化操作。
2. @JsonInclude 注解:
@JsonInclude 注解可以应用于特定的字段或类来自定义其序列化行为。例如:
import com.fasterxml.jackson.annotation.JsonInclude; //... @JsonInclude(JsonInclude.Include.NON_NULL) public class SomeClass { private String someValue; }
此注解指示 Jackson 将 someValue 字段的值为 null 时从序列化中排除。
或者,@JsonInclude 注释可以用在 getter 方法上field:
import com.fasterxml.jackson.annotation.JsonInclude; //... public class SomeClass { private String someValue; @JsonInclude(JsonInclude.Include.NON_NULL) public String getSomeValue() { return someValue; } }
此方法允许仅当字段的值不是时才序列化该字段空。
以上是使用 Jackson 序列化对象时如何跳过空值?的详细内容。更多信息请关注PHP中文网其他相关文章!