От разглеждането на опциите изглежда, че можете да коментирате свойствата, за да се показват само ако даден 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 MixIns, които биха ви позволили да отмените поведението на (де)сериализация на части от клас, без да променяте самия клас, а от Jackson 2.0 (много скорошна версия) има филтри също.