JavaRush /Blog Java /Random-FR /Sérialisation à Jackson. Comment puis-je spécifier explic...
ColdDeath
Niveau 34
Москва

Sérialisation à Jackson. Comment puis-je spécifier explicitement quelle sous-classe utiliser ?

Publié dans le groupe Random-FR
Après avoir lu des cours au niveau 33, je n'arrive pas à comprendre comment, lors de la sérialisation en JSON à l'aide de Jackson, spécifier un champ supplémentaire, type, pour les classes avec les mêmes champs, comment faire cela dans le cours 4. J'indique que je souhaite entrer le champ type, mais rien ne se passe Sérialisation à Jackson.  Comment puis-je spécifier explicitement quelle sous-classe utiliser ?  - 1 . S'il vous plaît, dites-moi qu'est-ce que je fais de mal ? public class Solution { public static void main(String[] args) throws IOException { Cat cat = new Cat(); chat.nom = "Murka" ; chat.âge = 5 ; chat.poids = 3; Chien chien = nouveau Chien(); dog.name = "Tueur"; chien.age = 8 ; chien.propriétaire = "Bill Jefferson" ; Liste des tableaux animaux = new ArrayList(); animaux.ajouter(chat); pets.add(chien); StringWriter écrivain = new StringWriter(); convertToJSON(écrivain, animaux de compagnie); System.out.println(writer.toString()); //[{"name":"Murka","age":5,"weight":3},{"name":"Killer","age":8,"owner":"Bill Jefferson"}] } public static void convertToJSON (StringWriterwriter, Object object) throws IOException { ObjectMapper mapper = new ObjectMapper(); mapper.writeValue (écrivain, objet); } @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = Cat.class, name = "cat"), @JsonSubTypes.Type(value = Dog.class , name = "dog") }) classe statique publique Cat extends Pet { public int age; poids entier public ; } classe statique publique Dog extends Pet { public int age; propriétaire de chaîne publique ; } classe statique publique Pet { nom de la chaîne publique ; } }
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION