2016-07-13 17 views
2

私はアンダースコアを含むキーでJSONを受け取る必要があり、大文字小文字を無視します。例えば、 Device_control_API、device_control_API、Device_Control_API、device_control_aPIなどはすべて同じプロパティにマップする必要があります。ジャックソン - スネークケースキーで大文字小文字を区別しない

@JsonSetterを使用して、可能なすべての組み合わせで複数のセッターメソッドを作成できることはわかっていますが、それはうまくいくとは思いません。

私はケースを無視するObjectMapperオブジェクトのmapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true) を使用することをお勧め他の質問を見てきましたが、私は春ブートを使用していますので、それを行うと、フォームのPOJOオブジェクトのペイロードを得るために、私のREST APIを望んですることはできません。

注釈やその他の方法がありますか。

助けてください!

答えて

2

MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIESを注釈として使用することはできません。 - そのこれらの設定を意味MapperFeature

ジャクソンはONLY がObjectMapper使用する前に定義することができますごとのマッパー設定のセットを定義します/オフ機能のhere

ジャクソンから次の情報を手に入れました は、リクエストごとにオンザフライで変更することはできません。彼らは POJOの基本的なイントロスペクションの詳細を設定し、その結果の組み込みオブジェクト (シリアライザ、デシリアライザ、関連)は大量にキャッシュされます。これらの設定が異なる が必要な場合は、別のObjectMapper インスタンスを使用する必要があります。

そして、MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIESは構成の1つです。


しかし、カスタムの逆シリアル化クラスが役立つかもしれません。 Stackoverflowには多くのチュートリアルや質問があります。

は、私はいくつかのを見つけました
関連する問題