长话短说,我的一个实体有一个 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/