2016-10-06 7 views
1

私はhttps://immutables.github.io/ライブラリをJacksonと使用しています。 私のクラスはJackson-serializableにしたい。私は、生成されたコード内のすべてのフィールドでmapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);残念ながらImmunablesライブラリでJackson PropertyNamingStrategyを使用する方法

Immutablesライブラリ@JsonProperty("propertyName")を置くを使用してcom.fasterxml.jackson.databind.ObjectMapperために構成されているカスタムPropertyNamingStrategyを(使用したい。PropertyNamingStrategyをオーバーライドすることマッパー・レベルで定義された(またはクラスレベルで、)@com.fasterxml.jackson.databind.annotation.JsonNamingアノテーションを使用。

は?それが可能(org.immutables.value.Value.Styleまたは類似の手段を使用して)すべてのフィールドのプロパティ名を入れImmutablesライブラリ停止にするために、私はこの問題を回避してきた

、すべてのプロパティで(値なし)@JsonPropertyを入れているが、私はと満足していませんこれ。

答えて

1

スタイルプロパティforceJacksonPropertyNames=falseは、プロパティ名を特定の文字列に強制しません。これはクラスレベルとマッパーレベルで設定された命名方法で動作します。

は、スタイルの紹介はこちら:https://github.com/immutables/immutables/issues/431https://github.com/immutables/immutables/issues/353

+0

ありがとう:http://immutables.github.io/style.html

あなたは問題のこの設定に関するいくつかの背景情報を読み取ることができます! forceJacksonPropertyNames = false実際には、Immutable *クラスには名前のないJsonPropertyアノテーションが含まれています。これにより、Jacksonはmy.fasterxml.jackson.databind.ObjectWriterの命名戦略、または@ JsonNamingによって設定された命名戦略をクラスレベルで尊重するようになります。 http://immutables.github.io/style.htmlページでforceJacksonPropertyNamesを文書化することは素晴らしいことです。現在、そのページには言及されておらず、org.immutables.value.Value.Style全体がjavadocでドキュメント化されていません。 –

+0

ドキュメントのページとJavadocを同期させておくのは難しいので、それらは異なる役割を持っています。ページはスタイルの紹介として役立ちます。ここで、Javadocは詳細な(試してみる限り)参照です。申し訳ありませんが、透明性が低下する場合は、改善するよう努めます!ありがとうございました! –

関連する問題