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オブジェクトに冗長なプロパティ「type」を追加します。pojoのspeciesプロパティを使用するだけで、コレクションを適切にシリアル化/逆シリアル化する方法はありますか?

4

1 に答える 1

0

Jackson の 2.2.0 バージョンでは、この問題が修正されているはずです。

問題の詳細とその修正は、 https ://github.com/FasterXML/jackson-databind/issues/23 で確認できます。

于 2013-04-16T04:42:45.363 に答える