Jackson2.1.4 序列化對象時,過濾null的屬性 empty的屬性 default的屬性


在進行序列化如何過濾為null的屬性,empty的屬性,或者default的屬性。

 

一、全局注冊 objectMapper.setSerializationInclusion(Include.ALWAYS);

二、具體類上打注解

@JsonSerialize(include = Inclusion.NON_NULL) public class MyTypeWithoutNulls {   public String mayHaveValue; // will not be included if value is null
}

三、具體屬性上打注解

@JsonInclude(Include.NON_NULL) public Date getBirthday() {   return birthday; }

 

測試用例

public class User { private int id; private String name; private Date birthday; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }
//將該標記放在屬性上,如果該屬性為NULL則不參與序列化 //如果放在類上邊,那對這個類的全部屬性起作用 //Include.Include.ALWAYS 默認 //Include.NON_DEFAULT 屬性為默認值不序列化 //Include.NON_EMPTY 屬性為 空(“”) 或者為 NULL 都不序列化 //Include.NON_NULL 屬性為NULL 不序列化 @JsonInclude(Include.NON_NULL) public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
//測試方法
ObjectMapper mapper = new ObjectMapper(); User user = new User(1,"jack",null); String outJson = mapper.writeValueAsString(user); System.out.println(outJson); //測試結果 //{"id":1,"name":"jack"}
ObjectMapper mapper = new ObjectMapper(); //通過該方法對mapper對象進行設置,所有序列化的對象都將按改規則進行系列化 //Include.Include.ALWAYS 默認 //Include.NON_DEFAULT 屬性為默認值不序列化 //Include.NON_EMPTY 屬性為 空(“”) 或者為 NULL 都不序列化 //Include.NON_NULL 屬性為NULL 不序列化
mapper.setSerializationInclusion(Include.NON_NULL); User user = new User(1,"",null); String outJson = mapper.writeValueAsString(user); System.out.println(outJson);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM