У меня есть объект с одним необязательным полем и не могу найти подходящую аннотацию для его моделирования. Любые идеи, каков правильный способ сделать это с Джексоном?
Как определить дополнительное поле json с использованием Jackson
Ответ 1
В Jackson вы не можете различать необязательные и необязательные поля. Просто объявите любое поле в вашем POJO. Если в вашей структуре JSON нет поля, то Джексон не будет вызывать сеттер. Вы можете следить за тем, как сеттер был вызван с флагом в POJO.
Ответ 2
Поздняя вечеринка...
Используя Jackson 2.8.6 через Spring HttpMessageConverter 4.3.6, я должен был изменить параметр setter на развернутый тип, например:
class Foo {
private Optional<Bar> bar;
public void setBar(Bar bar) { // NOT Optional<Bar>, this gives me Optional.empty()
this.bar = Optional.of(bar);
}
// getter doesn't need to be changed
}