0
假設我有兩個類:傑克遜:隱藏通過@JsonProperty&@JsonView對超類的子類的屬性
public class Super {
@JsonView(SpecialCaseView.class)
@JsonProperty("name")
public String getDisplayName() {
return "super name";
}
}
和
public class Duper extends Super {
private String name = "John Smith";
public String getName() {
return name;
}
}
當我做了Duper
對象的正常序列(例如,具有new ObjectMapper().writerWithView(ADifferentView.class).writeValueAsString(new Duper())
),我希望得到
{
"name": "John Smith"
}
相反,我什麼也沒得到。看起來這是因爲超類的「名稱」屬性首先被拾取,但是由於具體的視圖,傑克遜忽略了它。
這是一個錯誤?
如果沒有,有沒有辦法解決這個問題,或者至少有一種方法來檢測它,或得到一個警告?
傑克遜2.7.3。我應該澄清 - 我正在使用幾種不同的觀點之一進行序列化,並且我希望Duper的「名字」出現在所有這些視圖中。 (理想情況下,無需創建父視圖...) –
我相信只有當您的視圖子類爲SpecialCaseView時(但您顯然不希望這樣),它纔會起作用。 –
對。遊民。謝謝。 –