gpt4 book ai didi

jaxb - Jackson 编码(marshal) XMLAttribute 获取 "null"值

转载 作者:行者123 更新时间:2023-12-04 19:09:03 25 4
gpt4 key购买 nike

我有 JAXB/Jackson 编码问题。我有这样的注释

@XmlAttribute(name = "private")
protected Boolean mPrivate;

我希望如果 mPrivate 不存在此属性变量是 null .

如果输出是 XML,这可以正常工作。但是如果我切换到 JSON,使用 Jackson,输出是
xxxxxxx, "private":null, xxxxxxxx

任何人都知道为什么会发生这种情况以及如何解决它?提前致谢。

最佳答案

Jackson 与 JAXB 注释兼容。因此,JAXB 不支持 XmlAttributes 的默认值,因为在序列化为 XML 时,如果 value 为 null,则默认行为将它们排除在外。

有几个选项可以为 JSON 实现这一点。

  • 你可以注释你的 POJO
    @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
  • 您可以设置 ObjectMapper 的默认行为以从序列化中排除空值。您可以通过调用:

    setSerializationInclusion(Inclusion.NON_NULL);

    ...在 ObjectMapper 实例上。
  • 关于jaxb - Jackson 编码(marshal) XMLAttribute 获取 "null"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17445310/

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