次のような POJO がいくつかあります。
class Items {
List<Item> items;
public List<Item> getItems() {
return items;
}
...
}
class Item {
String name;
Date insertionDate;
...
}
Date
カスタム形式を使用してフィールドをシリアル化できるようにしたいItem
(「Date:xxx」のような日付にプレフィックスを追加する) が、常に実行したくない (他の消費者が使用しているため)このプレフィックスは必要ありません)、特定の場合のみ。
で注釈を付けるとItem
、おそらくこの作業を行うことができますが、特定の場合にのみ、このメソッドを使用してこのフィールドを常にシリアル化したいわけではないため、そうしたくありません。getInsertionDate()
@JsonSerialize(using = CustomDateSerializer.class)
理想的には、シリアライゼーションをカスタマイズしたいコントローラーでこれを行います。
@JsonSerialize(using = CustomDateSerializer.class)
public List<Item> getItems() {
....
}
whereCustomDateSerializer extends SerializerBase<Date>
と Jackson はList
、デフォルトのシリアライザーを使用して各アイテムをシリアライズする必要があることを認識し、オブジェクトにヒットするとDate
、カスタム シリアライザーを使用する必要があります。もちろん、これは使用方法ではないため機能しませんが、ラッパーでラップし、カスタムシリアル化が必要なときにそのラッパーを使用する@JsonSerialize
以外に、これを機能させる方法はありますか? Item
私はこれについて間違った方法で考えていますか?これを行う別の方法はありますか?
Spring MVC を使用しているため、シリアライゼーションを直接呼び出していないことに注意してください。
どんな助けでも大歓迎です:)