1

1.9 コードでは、objectMapper.getDeserializationConfig.addMixInAnnotations と objectMapper.getSerializationConfig.addMixInAnnotations を使用しました。2.2 では、これはもはや不可能であり、モジュールを介して行う必要があるようです。これは正しいです?モジュールでは、シリアライザーとデシリアライゼーションの両方の構成でミックスインを登録するように見えます。私がアップグレードしている一部のコードでは、デシリアライザー構成よりも多くのシリアライザー構成があり、2.2 でこの構成を複製する方法があるかどうか疑問に思っています。

私の質問を述べるもう 1 つの方法は、2.2 に mixin を追加して、シリアライゼーションなどにのみ適用するように指定できますか? または逆シリアル化?

4

1 に答える 1

1

ジャクソンフォーラムで回答を得ました。数日以内に返信がなく、タイミングがなくなっていたので、このシナリオでは別のオプションとしてここに投稿しました.

ObjectMapper2.x についての私の仮定は、主なユース ケースはミックスインがシリアライゼーションとデシリアライゼーションの両方に適用されることであり、最も一般的な方法は、または Module メソッドを使用して直接追加することでした。マッパー自体以外のオブジェクトを不変に保つように、基本的な実装が変更されました。ミックスイン設定の統一は、目標というよりもその結果 (および一般的な単純化) でした。別々の mix-in が必要な場合、最良の方法は、別々の ObjectMappers を作成することです。SerializationConfigとはいえDeserializationConfig(潜在的に)さまざまなミックスインのセットへの参照を保持してください。これを利用する方法はありません。また、分離が必要な場合は、github issue tracker (プロジェクト jackson-databind 用) で機能リクエストを提出できます。サポートを再度追加するのがどれほど簡単かはわかりませんが、それが本当に必要なものであるかどうかを提案する価値はあります.実装レベルでの課題は、ミックスインが事前に設定する必要がある基本的な機能であることです.実際のシリアライゼーションまたはデシリアライゼーション (シリアライザー/デシリアライザーの構築方法に影響するため、またキャッシュにより、ミックスイン セットが変更された場合でも効果が持続するため)。

于 2013-08-13T18:49:15.443 に答える