gpt4 book ai didi

java - Jackson - 在进行转换时如何不忽略 joda.time.DateTime 字段的空值?

转载 作者:太空宇宙 更新时间:2023-11-04 10:55:02 25 4
gpt4 key购买 nike

我正在使用 Dropwizard 的 Jackson。我的类(class)有一些字段,例如

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 时,我仍然希望 key 存在于转换后的 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 的默认行为。如果是这样,我该如何更改它?

最佳答案

这似乎是一个已知问题,已在 Jackson 2.8+ 和 2.7.6+ 中修复:

https://github.com/dropwizard/dropwizard/issues/1627

将 DW 版本增加到 1.0.0+ 似乎可以解决该问题。您还可以操纵 DW 使用的 Jackson 依赖项来指向已修复问题的位置,但您可能会遇到其他几个问题。

关于java - Jackson - 在进行转换时如何不忽略 joda.time.DateTime 字段的空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47402095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com