私はDropwizardのJacksonを使用しています。私のクラスには、いくつかのフィールドがあります。ジャクソン - 変換を行うときにjoda.time.DateTimeフィールドのnull値を無視できないのはなぜですか?
public class SubscriptionInfo{
@JsonProperty private Integer subscriptionId;
@JsonProperty private Integer packageId;
@JsonProperty private DateTime startDate;
@JsonProperty private DateTime endDate;
// other fields, getters, setters
...
}
startDateまたはendDateがnullの場合、変換されたJSONにキーが存在することを希望します。私は@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
のような注釈をしなかった。変換されたJSONは次のようになります
{
"subscriptionId": 111,
"packageId": null,
"startDate": 1477908963000
}
「packageId」はありますが「endDate」はありません。 nullのときに "startDate"と "endDate"のキーを保持できるかどうかは疑問です。
アップデート:私は0.9.2と2.6.1ジャクソンを使用しています
。 jackson-datatype-joda 2.6.1に依存しているようです。それがJodaModuleのデフォルトの動作かどうか疑問に思っています。もしそうなら、私はどのように変更できますか?
問題を再現した完全な最小例を投稿してください。注釈や有効な機能があり、それらのフィールドがnullの場合は削除するよう明示的に求めます。 –
@Alexあなたはジャクソンのどのバージョンをお使いですか?またはどのバージョンのDW?ありがとう。 –
@JsonPropertyを削除し、クラス定義の先頭に@JsonInclude(ALWAYS)を追加します。 –