Игнорировать поле с аннотацией для сериализации 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);
Вы можете прочитать больше об этом здесь.