1

在我的项目中,我有这样的东西

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 的种类属性来正确序列化/反序列化集合吗?

4

1 回答 1

0

Jackson 的 2.2.0 版本应该已经修复了这个问题。

您可以在此处查看问题的详细信息及其修复方法: https ://github.com/FasterXML/jackson-databind/issues/23

于 2013-04-16T04:42:45.363 回答