Immutables ライブラリ ( https://immutables.github.io ) を使用しています。クラスを JSON にシリアル化する必要があります (私は Jackson を使用しています)。出力 JSON のオプション フィールドをスキップしたい。Immutables の前は@JsonInclude(JsonInclude.Include.NON_EMPTY)
、クラス レベルで提供していました。
Immutables はその注釈を尊重していないようです。すべての Optional フィールドに注釈を付けると、正常に@JsonInclude(JsonInclude.Include.NON_EMPTY)
機能します。
クラスレベル(フィールドレベルではない)の注釈を使用して、空のオプションのシリアル化をスキップするようにイミュータブルに指示することは可能ですか? わかりorg.immutables.value.Value.Style#additionalJsonAnnotations
ましたが、それを使用して渡されたカスタマイズされた注釈はありません。
クラスパスに jackson-datatype-jdk8 がありcom.fasterxml.jackson.databind.ObjectMapper
、
mapper.registerModule(new Jdk8Module().configureAbsentsAsNulls(true));