オプションを見ると、特定の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);
詳細については、JacksonWikiを参照してください。
他にも選択肢があります。クラス自体を変更せずにクラスの一部の(逆)シリアル化動作をオーバーライドできるJackson MixInがあり、Jackson 2.0(ごく最近のリリース)ではフィルターがあります。 、も。