Игнорирование свойства при десериализации
У меня есть простой интерфейс с getter и setter для свойства.
public interface HasMoney {
Money getMoney();
void setMoney(Money money);
}
У меня есть другой класс UserAccount, который реализует этот интерфейс.
public class UserAccount implements HasMoney {
private Money money;
@Override
Money getMoney() // fill in the blanks
@Override
void setMoney(Money money) //, fill in the blanks
}
Моя проблема заключается в том, что я хочу сериализовать свойство money, но игнорировать его при десериализации, т. Е. Не принимать никаких значений от пользователя для этого свойства. Я пробовал @JsonIgnore на сеттере и @JsonIgnore (false) на геттере, он игнорирует его, но делает это и при сериализации.
Я попытался @JsonIgnore на установщике и @JsonProperty на установщике, просто чтобы явно сказать Джексону, что мы намерены отслеживать это свойство, которое, похоже, приводит к сбою приложения, когда свойство money отправляется на сервер, и Джексон пытается десериализовать его, вызывая исключение MalformedJsonException: не может построить объект типа Money.
Самым странным является то, что включение @JsonIgnore в сеттер и @JsonProperty в сеттер работает в большинстве случаев, когда свойство является примитивным.