JavaRush /Blog Java /Random-PL /Serializacja w Jackson. Jak mogę wyraźnie określić, które...
ColdDeath
Poziom 34
Москва

Serializacja w Jackson. Jak mogę wyraźnie określić, której podklasy użyć?

Opublikowano w grupie Random-PL
Po przeczytaniu wykładów na poziomie 33 nie rozumiem jak serializując do JSON przy użyciu Jacksona podać dodatkowe pole, typ, dla klas z tymi samymi polami, jak to zrobić na wykładzie 4. Wskazuję, że chcę wejść pole typu, ale nic się nie dzieje Serializacja w Jackson.  Jak mogę wyraźnie określić, której podklasy użyć?  - 1 . Proszę, powiedz mi, co robię źle? klasa publiczna Rozwiązanie { public static void main(String[] args) zgłasza wyjątek IOException { Cat cat = new Cat(); cat.name = "Murka"; wiek kota = 5; waga kota = 3; Pies pies = nowy Pies(); dog.name = "Zabójca"; wiek psa = 8; pies.właściciel = "Bill Jefferson"; Lista tablic zwierzęta = nowa ArrayList(); zwierzęta.add(kot); zwierzęta.add(pies); Zapisujący StringWriter = nowy StringWriter(); konwertujToJSON(pisarz, zwierzęta); System.out.println(writer.toString()); //[{"imię":"Murka","wiek":5,"waga":3},{"nazwa":"Zabójca","wiek":8,"właściciel":"Bill Jefferson"}] } public static void konwertujToJSON( zapisujący StringWriter, obiekt Object) zgłasza wyjątek IOException { ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(pisarz, obiekt); } @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = Cat.class, name = "cat"), @JsonSubTypes.Type(value = Dog.class , name = "dog") }) publiczna klasa statyczna Kot rozszerza Pet { public int age; publiczna waga całkowita; } public static class Pies rozszerza Pet { public int age; publiczny właściciel ciągu; } publiczna klasa statyczna Zwierzę { public String name; } }
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION