こんにちは。
json 文字列をドメイン固有のオブジェクトに逆シリアル化するように Jackson Object Mapper を構成しようとしています。以下のようにオブジェクトマッパーを構成しました
ObjectMapper mapper = new ObjectMapper();
mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.enableDefaultTypingAsProperty(DefaultTyping.NON_FINAL, "remoteClass");
私のドメインでは、json 文字列には、対応する実際の JAVA POJO (正規名) を示す remoteClass プロパティが含まれている必要があります。上記の構成は、抽象型の解決に役立ちます
ただし、上記の場合、 java.util.Lists は抽象型であるため、適切に逆シリアル化されません。
次のエラーが表示されます Unexpected token (START_OBJECT), expected VALUE_STRING: need JSON String that contains type id (for subtype of java.util.List)
この場合の Object Mapper は、デフォルトの collectionFallBacks に頼っていません。
次のような問題を克服するために、他の構成を試しました
SimpleModule module = new SimpleModule("test", Version.unknownVersion());
module.addAbstractTypeMapping(List.class, ArrayList.class);
mapper.registerModule(module);
しかし、これらは他の問題を引き起こします。
誰かが同じことで私を助けてくれますか。私は今これに何日も費やしました。これはジャクソンの制限のようです。間違っていたら訂正して