通过查看选项,似乎可以注释属性,仅在将给定
View的传递给
ObjectMapper用于序列化的属性时才显示。因此,您可以编辑该类:
public static class FooReference { public DBRef<Foo> foo; @JsonView(Views.WebView.class) public Foo getFoo() { return foo.fetch(); }}并提供:
class Views { static class WebView { }}然后使用正确的视图创建配置后进行序列化:
SerializationConfig conf = objectMapper.getSerializationConfig().withView(Views.WebView.class);objectMapper.setSerializationConfig(conf);
然后将其序列化。在使用MongoDB包装器进行序列化时不指定视图将意味着该方法将被忽略。没有JsonView批注的属性默认情况下是序列化的,可以通过指定以下行为来更改行为:
objectMapper.configure(SerializationConfig.Feature.DEFAULT_VIEW_INCLUSION, false);
可在Jackson Wiki上获得更多信息。
事实证明,还有其他替代方法:有Jackson混合功能,可以让您覆盖类的各个部分的(反序列化)行为,而无需修改类本身,从Jackson
2.0(最新发行版)开始,有过滤器也一样



