Я пытаюсь десериализовать объект JSON, хранящийся в CouchDb, используя Джексона. Этот объект необходимо десериализовать в pojo, который содержит перегруженные методы. Когда я пытаюсь извлечь объект с дивана и выполнить десериализацию, я получаю следующее исключение:
org.ektorp.DbAccessException:
org.codehaus.jackson.map.JsonMappingException:
Противоречивые определения для
свойство «множитель»:
com.db.commodities.framework.sdos.model.security.EqOpt # setMultiplier (1
params) против
com.db.commodities.framework.sdos.model.security.EqOpt # setMultiplier (1
Титулы)
Я пытался комментировать сеттер, который хотел бы использовать Джексон, но, похоже, это не сработало.
@JsonProperty("multiplier")
public void setMultiplier(SDOSAttribute multiplier) {
this.multiplier = multiplier;
}
public void setMultiplier(double multiplier) {
this.multiplier.setValue(String.valueOf(multiplier));
}
Как мне настроить Джексона для правильной десериализации, используя определенный метод? Или я подхожу к этой проблеме неправильно?
EDIT:
Я внес следующие изменения. Кажется, это работает, но немного страшнее. Если у кого-то есть лучший способ сделать это, пожалуйста, не стесняйтесь поделиться, и я с удовольствием приму.
@JsonProperty("multiplier")
protected void setMultiplierAttribute(SDOSAttribute multiplier) {
this.multiplier = multiplier;
}
@JsonIgnore
public void setMultiplier(double multiplier) {
this.multiplier.setValue(String.valueOf(multiplier));
}