gpt4 book ai didi

java - 我如何告诉 jackson 忽略我无法控制源代码的属性?

转载 作者:IT老高 更新时间:2023-10-28 11:25:03 24 4
gpt4 key购买 nike

长话短说,我的一个实体有一个 GeometryCollection当您调用“getBoundary”时会引发异常(为什么这是另一本书,现在让我们说这是它的工作方式)。

有没有办法告诉 jackson 不要包含那个特定的 setter/getter ?我知道当我拥有/控制代码时可以使用@JacksonIgnore。但情况并非如此,jackson 通过对父对象的不断序列化来结束这一点。我在 jackson 文档中看到了一个过滤选项。这是一个合理的解决方案吗?

谢谢!

最佳答案

您可以使用 Jackson Mixins .例如:

class YourClass {
public int ignoreThis() { return 0; }
}

有了这个 Mixin

abstract class MixIn {
@JsonIgnore abstract int ignoreThis(); // we don't need it!
}

有了这个:

objectMapper.getSerializationConfig().addMixInAnnotations(YourClass.class, MixIn.class);

编辑:

感谢评论,在 Jackson 2.5+ 中,API 已更改,应使用 objectMapper.addMixIn(Class<?> target, Class<?> mixinSource) 调用

关于java - 我如何告诉 jackson 忽略我无法控制源代码的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7421474/

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