JavaRush /Java Blog /Random-IT /Serializzazione a Jackson. Come posso specificare esplici...
ColdDeath
Livello 34
Москва

Serializzazione a Jackson. Come posso specificare esplicitamente quale sottoclasse utilizzare?

Pubblicato nel gruppo Random-IT
Avendo letto le lezioni al livello 33, non riesco a capire come, quando si serializza in JSON utilizzando Jackson, specificare un campo aggiuntivo, digitare, per le classi con gli stessi campi, come farlo nella lezione 4. Indico che voglio entrare il campo type, ma non succede nulla Serializzazione a Jackson.  Come posso specificare esplicitamente quale sottoclasse utilizzare?  -1 . Per favore dimmi cosa sto facendo di sbagliato? public class Solution { public static void main(String[] args) genera IOException { Cat cat = new Cat(); cat.nome = "Murka"; cat.età = 5; cat.peso = 3; Cane cane = nuovo Cane(); cane.nome = "Assassino"; cane.età = 8; cane.proprietario = "Bill Jefferson"; Lista di array animali domestici = new ArrayList(); animali domestici.add(gatto); animali domestici.add(cane); Scrittore StringWriter = new StringWriter(); convertToJSON(scrittore, animali domestici); System.out.println(writer.toString()); //[{"nome":"Murka","età":5,"peso":3},{"nome":"Killer","età":8,"proprietario":"Bill Jefferson"}] } public static void convertToJSON(StringWriter writer, oggetto Object) lancia IOException { ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(scrittore, oggetto); } @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 extends Pet { public int age; peso interno pubblico; } public static class Dog extends Pet { public int age; proprietario della stringa pubblica; } classe statica pubblica Pet { nome stringa pubblica; } }
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION