我有一個屬於我無權訪問的第三方庫的類。它看起來像:如何將Jackson ObjectMapper配置爲使用自定義值序列化某些Bean的某些字段(如果它們爲null)?
public class Product {
private String thumbnailUrl;
// many other properties, some of which are POJOs or collections
public String getThumbnailUrl() {
return thumbnailUrl;
}
public void setThumbnailUrl(String thumbnailUrl) {
this.thumbnailUrl = thumbnailUrl;
}
}
這只是我將要使用Jackson序列化爲字符串的一個類。還有不少其他人。
thumbnailUrl
財產有時可以是null
。如何配置ObjectMapper
將該字段序列化爲http://www.example.com/unknown.png
,如果是null
?
我認爲我不能使用mixins,因爲mixin將無法訪問原始對象,因此他們無法檢查該屬性的值是否爲null
。
正如問題中提到的,這是第三方類,我無法訪問源代碼。我想把這個邏輯外化。 – Outkast
然後恐怕你得爲這個類編寫你自己的序列化程序。這有很多方法,例如,http://www.baeldung.com/jackson-custom-serialization當然你不能註釋這個類,但是仍然可以配置你的ObjectMapper來使用你的自定義序列化器爲類(也在鏈接的方法) –
我可以寫一個自定義序列化器,但我希望序列化的所有方面保持原樣,並且只能自定義此字段的序列化。如果我爲具有20個字段的POJO編寫自定義序列化程序併爲所有20個字段添加序列化邏輯,那將非常糟糕。 – Outkast