【发布时间】:2014-04-14 15:26:06
【问题描述】:
我有一些类使用@JsonTypeIdResolver 将自定义类型字段添加到输出。此代码按预期工作。我现在向我的映射器对象添加了一个PropertyFilter。这是@JsonTypeIdResolver 停止工作的地方。工厂不再被调用。
工作代码:
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(outputStream,myObject);
不工作的代码:
ObjectMapper mapper = new ObjectMapper();
PropertyFilter myfilter=new SimpleBeanFilter() {
protected boolean include(BeanPropertyWriter writer) {
return true;
}
protected boolean include(PropertyWriter writer) {
return true;
}
}
FilterProvider filters=new SimpleFilterProvider().addFilter("myFilter",myFilter);
mapper.writer(filter).writeValue(outputStream,myObject);
由于过滤器是无用的(接受任何东西),输出应该是相同的。为什么我的类型字段不再序列化?
【问题讨论】:
-
杰克逊的哪个版本?
-
你能分享你试图序列化的类的代码吗?
-
用你喜欢的任何 Pojos 试试吧。我创建了一个单独的项目来证明这种失败。同样的问题。即使您使用
CLASS(内置)类型描述符,它也是同样的问题。编辑:我发现了这个问题,似乎这与继承有关。