我有一个序列化的类,并且我在类级别使用@JsonIgnoreProperties
来排除其中的一些字段。
最近,我有一个需要序列化这些字段的用例。
有没有办法让写入者/阅读者忽略注释?
我一直在研究@JsonView
,但似乎@JsonIgnoreProperties
优先于它。
发布于 2015-02-20 18:36:15
我已经想出了一个解决方案,不知道它是不是最好的,但完成了工作……
我最终使用了@JsonView。
所以我有两个这样的视图:
public class Views {
public static class Public { }
public static class Extended extends Public { }
}
默认的Spring映射器配置为
mapper.setConfig(mapper.getSerializationConfig().withView(Views.Public.class));
mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);
这个类看起来就像
public class Foo{
String name;
@JsonView(Views.Extended.class)
String title;
...}
通过在对象映射器上设置默认视图,它会导致它忽略所有其他未指定的视图。根据配置,不带注释的字段将始终被序列化。
然后,当我需要序列化整个类时,我使用:
objectMapper.writer().withView(Views.Extended.class).writeValueAsString(value);
https://stackoverflow.com/questions/28615351
复制相似问题