すべて、FasterXMLJacksonに@JsonCreator mixinを使用させるにはどうすればよいですか?
誰も私の方法のエラーを見ることができますか?
JSONのカスタムデシリアライズが必要です。ドロップウィザードで作業する必要があります。私はいくつかのトスに従ったが、うまくいかない。結論は、私は利用可能ではありません、既定の、引数なしのコンストラクタです。代わりに、私はファクトリメソッドを持っています。逆直列化しようとしているクラスを変更することはできません。私はJSONをシリアライズすることができます&はXMLとの間で逆シリアル化します。しかし、JSONから非直列化がストッパーです。
私はSOなどで見つけることができるすべてを読みましたが、何も規定されていません。私はこれやった私のDW Application.run(...)では
public class PatientMixin {
@JsonCreator
public static ForecastPatient createForecastForecastPatient() {
return ForecastFactory.eINSTANCE.createForecastPatient();
}
}
::私はミックスインを作成し
ジャクソンは私のミックスインを探して上記
<code before>
environment.getObjectMapper().addMixIn(ForecastPatient.class, PatientMixin.class);
<code after>
は十分なはずですし、工場に電話してください。代わりにエラーが表示されます。
Can not construct instance of forecast.ForecastPatient, problem: abstract types either need to be mapped to concrete types, have custom deserializer, or be instantiated with additional type information
私は正しくマップされていると思われますが、明らかにそうではありませんでした。また、私が読んでいる例の多くは古くなっているようです。
事前に感謝
で注釈を付けなければならないことを意味するが、抽象クラスをforecast.ForecastPatientていますか? –
いいえ抽象的ではありませんが、ファクトリメソッドが実装を返すインターフェイスです。 ForecastPatient et.al. eclipseモデリングフレームワークによって生成されました。 –
ジャクソンはインスタンス化する実装をjacksonに伝えるべきではありません –