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中文網其他相關文章!