У меня есть простой интерфейс с 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 на setter и @JsonIgnore (false) на getter, он игнорирует его, но он делает это, одновременно сериализуя его.
Я попробовал @JsonIgnore на сеттер и @JsonProperty на получателе, чтобы прямо сказать Джексону, что мы намерены отслеживать это свойство, которое, похоже, разбивает приложение, когда денежное свойство отправляется на сервер, и Джексон пытается десериализовать его бросание up MalformedJsonException: невозможно создать объект типа Money.
Самое странное, что включение @JsonIgnore в сеттер и @JsonProperty в сеттер работает в большинстве случаев, когда свойство является примитивным.