Serialisierung in Jackson. Wie kann ich explizit angeben, welche Unterklasse verwendet werden soll?
Nachdem ich Vorlesungen auf Stufe 33 gelesen habe, kann ich nicht verstehen, wie man bei der Serialisierung in JSON mit Jackson ein zusätzliches Feld, den Typ, für Klassen mit denselben Feldern angibt, wie man das in Vorlesung 4 macht. Ich gebe an, dass ich eintreten möchte das Typfeld, aber es passiert nichts . Bitte sag mir, was mache ich falsch? public class Solution { public static void main(String[] args) throws IOException { Cat cat = new Cat(); cat.name = "Murka"; Kat. Alter = 5; Kat.gewicht = 3; Hund Hund = neuer Hund(); dog.name = „Killer“; Hundealter = 8; dog.owner = „Bill Jefferson“; Anordnungsliste
Haustiere = neue ArrayList(); Haustiere.add(Katze); Haustiere.add(Hund); StringWriterwriter = new StringWriter(); ConvertToJSON(Writer, Haustiere); System.out.println(writer.toString()); //[{"name": "Murka", "Alter": 5, "Gewicht": 3}, {"name": "Killer", "Alter": 8, "Besitzer": "Bill Jefferson"}] } public static void ConvertToJSON(StringWriterwriter, Object object) throws IOException { ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(writer, object); } @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = Cat.class, name = "cat"), @JsonSubTypes.Type(value = Dog.class , name = "dog") }) public static class Cat erweitert Pet { public int age; öffentliches Int-Gewicht; } public static class Dog erweitert Pet { public int age; öffentlicher String-Besitzer; } public static class Pet { public String name; } }
GO TO FULL VERSION