2013-09-22 123 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的序列化将依赖于成员'类型'。如果type =“cat”,它应该使用CatPet类来序列化/反序列化。

+0

你可以为这个类实现你自己的解串器。请参阅此页面:http://pilhuhn.blogspot.com/2013/07/custom-deserializer-in-jackson-and.html了解更多信息。 –

+0

看看杰克逊维基:http://wiki.fasterxml.com/JacksonPolymorphicDeserialization – nutlike

回答

0

是的,您通常在基类上使用注释@JsonTypeInfo来指示如何使用多态类型信息。这样,事情就会“正常”。