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)
期待どおりに動作しないようです。何か案は?