2

Jackson でhttps://immutables.github.io/ライブラリを使用しています。クラスをジャクソンでシリアライズ可能にしたい。カスタムPropertyNamingStrategy(使用するように構成された)com.fasterxml.jackson.databind.ObjectMapperを使用し たいmapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);

残念ながら、Immutables ライブラリは@JsonProperty("propertyName")、生成されたコードのすべてのフィールドに置きます。@com.fasterxml.jackson.databind.annotation.JsonNamingこれは、マッパー レベル (またはアノテーションを使用してクラス レベル) で定義された PropertyNamingStrategy をオーバーライドします。

不変ライブラリがすべてのフィールドにプロパティ名を入れないようにすることは可能ですか (org.immutables.value.Value.Styleまたは同様の手段を使用して)?

@JsonProperty (値なし) をすべてのプロパティに配置するという回避策が用意されていますが、これには満足していません。

4

1 に答える 1

3

スタイル プロパティforceJacksonPropertyNames=falseは、プロパティ名を特定の文字列に強制しません。これは、クラス レベルおよびマッパー レベルで構成された命名戦略で機能します。

スタイルの紹介はこちらから入手できます: http://immutables.github.io/style.html

この設定に関する背景情報は問題で読むことができます: https://github.com/immutables/immutables/issues/431 https://github.com/immutables/immutables/issues/353

于 2016-10-07T12:26:32.313 に答える