使用fastxml jackson mapper,在尝试将相同的json键映射到pojo中的多个变量时获得低于异常。但是一些用例需要映射,所以有没有任何工作选项可以解决这个问题,解决pojo的任何变化。
例外:
Conflicting setter definitions for property "vno"
json:
{"vno":"123556"}
POJO:
@JsonProperty(value="vno")
public String getVno(String vno)
@JsonProperty(value="vno")
public String getIdno(String idno)
答案 0 :(得分:1)
您的POJO中不能有两个vno
映射属性:
@JsonProperty(value = "vno")
public void setVno(String vno) {
...
}
@JsonProperty(value = "vno")
public void setIdno(String idno) {
...
}
你能做的是:
@JsonProperty
注释的方法,以确定将为vno
属性返回哪个值。@JsonIgnore
注释其他getter方法。有关详细信息,请参阅以下代码:
@JsonIgnore
public String getVno() {
...
}
@JsonIgnore
public String getIdno() {
...
}
@JsonProperty(value = "vno")
public String getValueForVnoProperty() {
// Decide which value will be returned
...
}
Simmilary对上述方法,你可以有以下几点:
@JsonProperty
注释的方法,以确定将vno
属性的值设置在哪个属性中。@JsonIgnore
注释其他setter方法。请参阅以下代码:
@JsonIgnore
public void setVno(String vno) {
...
}
@JsonIgnore
public void setIdno(String idno) {
...
}
@JsonProperty(value = "vno")
public void setValueForVnoProperty(String value) {
// Decide in which property the value will be set
...
}