2013-09-22 3 views
0

У меня есть классы в следующем составе:Джексон картографа с 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; 
} 

Я должен сериализовать объекты класса элемента в JSON строку, и наоборот. Могу ли я каким-то образом сделать сериализацию такой, что сериализация объекта Pet в классе Member будет зависеть от типа члена. Если type = "cat", он должен сериализоваться/десериализоваться с помощью класса CatPet.

+0

Вы можете реализовать свой собственный десериализатор для этого класса. Для получения дополнительной информации см. Эту страницу: http://pilhuhn.blogspot.com/2013/07/custom-deserializer-in-jackson-and.html. –

+0

Посмотрите на Wiki Jackson: http://wiki.fasterxml.com/JacksonPolymorphicDeserialization – nutlike

ответ

0

Да, вы обычно используете аннотацию @JsonTypeInfo на базовом классе, чтобы указать, как использовать информацию о полиморфном типе. И с этим все будет «просто работать».

Смежные вопросы