我的JSON:如何實現自定義序列化功能在fasterxml
{ "name": "asdf", "age": "15", "address": { "street": "asdf" } }
如果街道爲null,與JsonSerialize.Inclusion.NON_NULL
,我可以得到..
{ "name": "asdf", "age": "15", "address": {} }
但我想這樣的東西..(當地址不爲空,它是一個新的/空的對象,但街道是空的。)
{ "name": "asdf", "age": "15" }
我以爲有自定義序列化功能,如JsonSerialize.Inclusion.VALID_OBJECT
。 在Address類中添加isValid()方法,然後如果返回true serialize否則不要序列化。
但我不知道如何進一步/哪個類來覆蓋。這是可能的或任何其他意見呢?請建議。
新增類
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
Customer customer = new Customer();
customer.setName("name");
customer.setAddress(new Address());
mapper.writeValue(new File("d:\\customer.json"), customer);
}
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class Customer {
private String name;
private Address address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class Address {
private String street;
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
}
注:我現在不擔心反序列化。即地址對象的丟失。
在此先感謝。
你試過我的建議嗎? – Pracede 2014-12-04 08:08:03
@Pracede感謝您的關注。是的,我已經嘗試過,但沒有解決問題。它避免了街道(空),但沒有在序列化中尋址(新實例/空對象)。 – Malai 2014-12-04 16:15:20
你可以添加你的java類嗎? – Pracede 2014-12-04 16:32:15