JavaRush /Java 博客 /Random-ZH /杰克逊连载。如何明确指定要使用哪个子类?
ColdDeath
第 34 级
Москва

杰克逊连载。如何明确指定要使用哪个子类?

已在 Random-ZH 群组中发布
读完第 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