4

Jackson を使用して、所有していないサーバーからの json 応答を逆シリアル化しています。JsonTypeInfo アノテーションを使用して、ポリモーフィック データ型を処理しています。ベースタイプの構成は次のとおりです(Thingこの場合):

@JsonTypeInfo(
        use = JsonTypeInfo.Id.NAME,
        include = JsonTypeInfo.As.PROPERTY,
        property = "type")
@JsonSubTypes({
        @JsonSubTypes.Type(value = Thing.class, name = "Thing"),
        @JsonSubTypes.Type(value = FancyThing.class, name = "FancyThing")
})

サーバーが空の文字列を返し、これらの型のいずれかが期待されるまで、すべてがうまく機能し、次のいずれかを取得します。

org.codehaus.jackson.map.JsonMappingException: Unexpected token (VALUE_STRING), expected FIELD_NAME: missing property 'type' that is to contain type id (for class com.stackoverflow.Thing)

このようなケースを処理するための推奨される方法はありますか? 私が言ったように、私はサーバーを制御しないので、このクライアント側を処理する必要があります。を構成することでこれを処理したいのですObjectMapperが、ObjectMapper#configure(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true)期待どおりに動作しないようです。何か案は?

4

1 に答える 1