Eigenschaft beim Deserialisieren ignorieren

Ich habe eine einfache Schnittstelle mit Getter und Setter für eine Eigenschaft.

public interface HasMoney { 

      Money getMoney();

      void setMoney(Money money);

 }

Ich habe eine andere Klasse UserAccount, die diese Schnittstelle implementiert.

public class UserAccount implements HasMoney {

       private Money money;

       @Override
       Money getMoney() // fill in the blanks

       @Override
       void setMoney(Money money) // fill in the blanks

}

Mein Problem ist, dass ich die Eigenschaft money serialisieren möchte, aber beim Deserialisieren ignoriere, d. H. Keine Werte vom Benutzer für diese Eigenschaft akzeptiere. Ich habe versucht, @JsonIgnore auf Setter und @JsonIgnore (false) auf dem Getter, es ignoriert es, aber es tut dies, während es auch serialisiert.

Ich habe versucht, @JsonIgnore für den Setter und @JsonProperty für den Getter zu verwenden, um Jackson explizit mitzuteilen, dass wir diese Eigenschaft verfolgen möchten. Dies scheint die Anwendung zum Absturz zu bringen, wenn die Eigenschaft money an den Server gesendet wird und Jackson versucht, sie zu deserialisieren. MalformedJsonException wird ausgelöst: Objekt vom Typ Money kann nicht erstellt werden.

Das Seltsamste ist, dass das Setzen von @JsonIgnore auf den Setter und @JsonProperty auf den Setter in den meisten Fällen funktioniert, wenn die Eigenschaft primitiv ist.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage