2013-01-22 205 views
1

POJO財產在我的項目多態集合我有這樣的事情序列化/反序列化基於使用傑克遜

enum Species { 
    DOG, CAT 
} 

@JsonTypeInfo(
     use = JsonTypeInfo.Id.NAME, 
     include = JsonTypeInfo.As.PROPERTY, 
     property = "type") 
@JsonSubTypes({ 
     @Type(value = Cat.class, name = "cat"), 
     @Type(value = Dog.class, name = "dog") }) 
class Animal { 
    Species species; 
    String name; 
} 

class Cat extends Animal { 
    Cat() { 
     species = Species.CAT; 
    } 
    ... 
} 

class Dog extends Animal { 
    Dog() { 
     species = Species.DOG; 
    } 
    ... 
} 

class Zoo { 
    Collection<Animal> animals; 
} 

我需要序列化/反序列化動物園JSON。我遵循本指南http://programmerbruce.blogspot.com/2011/05/deserialize-json-with-jackson-into.html ,它工作得很好。但它增加了冗餘屬性「類型」,我不真正需要的JSON對象。有什麼方法可以正確地序列化/反序列化收集,只需使用pojo的物種屬性?

回答