短い質問: ジャクソンの値に応じて、オプションでフィールドをシリアル化する方法はありますか? 「特定の整数フィールドの値が 0 の場合、シリアル化しないでください」など、jackson に伝える方法はありますか。
(私の言いたいことが理解できたら、以下は飛ばしてください)
長い質問別名なぜ私はそのようなことをしたいのですか: Spring MVC モデルクラスがあるとします
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class Foo {
int a0;
int a1;
.
.
.
int a99;
String c;
//getters and setters
}
の新しいオブジェクトのFoo
場合、すべてint
が 0 に初期化さString
れnull
ます。したがって、このオブジェクトをシリアル化するとint
、 のおかげで、すべて 0 に設定された s のみが結果として得られ@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
ます。
実際の操作では、a1...a99 の一部、たとえば a20 から a26 を意味のある値 (私にとっては 0 以外の値) に設定して応答する必要があるとします。それらのフィールドのみを送信するのが賢明でしょう。
これを達成するために、いつでもint
宣言を に変更できInteger
ます。しかし、私はintに関する数値計算がたくさんあり、ネットで少し熟考し、thisやthisのようなリンクに出くわしたので、ちょっとプリミティブ型に固執したいと思います。両方のニーズを満たすソリューションはありますか?