Игнорировать поле с аннотацией для сериализации JSON, но не для Mongo в MongoJack

Есть ли возможность игнорировать поле для сериализации JSON (для веб-отображения), но не для монго (внутренняя сериализация)?

До сих пор я пробовал все эти методы, но для Mongo поле также игнорировалось, или в обоих случаях не игнорировалось

Джексон: как предотвратить полевую сериализацию

2 ответа

Решение

Хорошо, я наконец решил это.

objectMapper.writerWithView(Views.Public.class).writeValueAsString(lo)); 

writeValueUsingView из другой версии Джексона, поэтому он не работал

Пользовательскую сериализацию для web/mongo можно решить с помощью аннотаций @JsonView, попробуйте выполнить следующие действия:

class Views {
    static class OnAllViews {}
    static class OnlySomeViews extends OnAllViews {}
    ...
}

public class Thing {
    @JsonView(Views.OnAllViews.class) Integer id;
    @JsonView(Views.OnlySomeViews.class) String name;
}

а затем вы можете вызвать соответствующий уровень сериализации через writeValueUsingView метод.

objectMapper.writeValueUsingView(out, beanInstance, ViewsPublic.class);

Вы можете прочитать больше об этом здесь.

Другие вопросы по тегам