我正在使用Dropwizard的杰克逊。我的课有一些像
这样的字段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”不存在。我想知道当它们为空时我是否可以为“startDate”和“endDate”保留密钥。
更新
我正在使用0.9.2和jackson 2.6.1。 似乎对jackson-datatype-joda 2.6.1存在依赖性。我想知道这是否是JodaModule的默认行为。如果是这样,我该怎么改呢?
答案 0 :(得分:0)
这似乎是一个已知问题,已在Jackson 2.8+和2.7.6 +中修复:
https://github.com/dropwizard/dropwizard/issues/1627
将DW版本增加到1.0.0+似乎可以解决问题。您还可以操纵DW用于指向问题已解决的问题的Jackson依赖项,但您可能遇到其他几个问题。