2017-06-19 6 views
1

は、我々は次のタイプがあるとしジュソン?私はcustom deserializationとそれを行う方法を知っていますが、私はJackson annotationsを使用して同じを行う方法を見つけることができません。これは、animalTypeプロパティがCatまたはDogに存在する場合に可能ですが、私の場合、その場所はZooです。ジャクソン多型のデシリアライズ使用して注釈

答えて

2

はあなたがZooでもanimalTypeフィールドあたりDogまたはCatをたいサブタイプを指定するJsonTypeInfoZooanimalフィールドに注釈を付けることができます。トリッキーなビットはAnimalの特定のタイプがJSONすなわちEXTERNAL_PROPERTY

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXTERNAL_PROPERTY, property = "animalType") 
@JsonSubTypes({ 
     @JsonSubTypes.Type(value = Cat.class, name = "cat"), 
     @JsonSubTypes.Type(value = Dog.class, name = "dog") 
}) 
private Animal animal; 
+0

Animalの外のプロパティから来るように指定することですありがとう、JsonTypeInfo.As.EXTERNAL_PROPERTYは私が探していたまさにです。 –

関連する問題