2013-09-22 3 views
0

J'ai des classes dans la structure suivante:Jackson mappeur avec polymorphimsm

class Member { 
     public long id; 
     public String name; 
     public String type; 
     public Pet pet; 
}; 

public abstract class Pet { 
} 

public CatPet extends Pet { 
    public int age; 
    public String color; 
} 

public DogPet extends Pet { 
    public int age; 
    public String breed; 
} 

Je dois sérialiser les objets de membres de la classe dans une chaîne JSON et vice-versa. Puis-je en quelque sorte rendre la sérialisation telle que la sérialisation de l'objet Pet dans la classe Member dépendra du type de membre. Si type = "cat", il doit sérialiser/désérialiser en utilisant la classe CatPet.

+0

Vous pouvez implémenter votre propre désérialiseur pour cette classe. Voir cette page: http://pilhuhn.blogspot.com/2013/07/custom-deserializer-in-jackson-and.html pour plus d'informations. –

+0

Jetez un coup d'oeil au Jackson Wiki: http://wiki.fasterxml.com/JacksonPolymorphicDeserialization – nutlike

Répondre

0

Oui, vous utilisez généralement l'annotation @JsonTypeInfo sur la classe de base pour indiquer comment les informations de type polymorphes doivent être utilisées. Et avec cela, les choses vont "juste marcher".

Questions connexes