JavaRush /Java Blog /Random-TW /傑克遜連載。如何明確指定要使用哪個子類別?
ColdDeath
等級 34
Москва

傑克遜連載。如何明確指定要使用哪個子類別?

在 Random-TW 群組發布
讀完第 33 級的講座後,我不明白如何在使用 Jackson 序列化為 JSON 時,為具有相同字段的類指定附加字段、類型,如何在第 4 講中執行此操作。我表示我要輸入type字段,但沒有任何反應 傑克遜連載。 如何明確指定要使用哪個子類別? - 1 。請告訴我我做錯了什麼?public class Solution { public static void main(String[] args) throws IOException { Cat cat = new Cat(); } cat.name = "穆卡"; 貓齡 = 5; 貓的重量 = 3; 狗狗 = new Dog(); 狗.name = "殺手"; 狗齡=8;狗.owner =“比爾·傑斐遜”; 數組列表 寵物=新的ArrayList(); 寵物.添加(貓); pets.add(狗); StringWriter writer = new StringWriter(); ConvertToJSON(作家,寵物);System.out.println(writer.toString()); //[{"name":"Murka","age":5,"weight":3},{"name":"Killer","age":8,"owner":"Bill Jefferson"}] } public static void ConvertToJSON(StringWriter writer, Object object) throws IOException { ObjectMapper 映射器= new ObjectMapper(); mapper.writeValue(作者,物件); @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = Cat.class, name = "cat"), @JsonSubTypes.Type(value = Dog.class) , name = "dog") }) 公共靜態類別Cat 擴展Pet { 公共int 年齡; 公共整數權重;} 公共靜態類別 Dog 擴展 Pet { 公共 int 年齡; 公共字符串所有者;} 公用靜態類別 Pet { 公用字串名稱;} }
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION