Java Jackson:将不同字段映射到一个JsonProperty
我有一个要求,其中我有一个名为Response的POJO类,它有3个不同的字段,在这3个字段中,只有一个字段会根据某些条件设置。我希望无论何时设置其中任何一个,都应该返回JsonProperty名称“data”。然而,在使用@JsonProperty(“数据”)定义所有3个字段时,我遇到了以下异常。我有没有办法用Jackson做到这一点 java.lang.IllegalArgumentException:表示属性“数据”的多个字段:Java Jackson:将不同字段映射到一个JsonProperty,java,jackson,Java,Jackson,我有一个要求,其中我有一个名为Response的POJO类,它有3个不同的字段,在这3个字段中,只有一个字段会根据某些条件设置。我希望无论何时设置其中任何一个,都应该返回JsonProperty名称“data”。然而,在使用@JsonProperty(“数据”)定义所有3个字段时,我遇到了以下异常。我有没有办法用Jackson做到这一点 java.lang.IllegalArgumentException:表示属性“数据”的多个字段: @JsonInclude(Include.NON_NULL)
@JsonInclude(Include.NON_NULL)
公众课堂反应{
@JsonProperty(“数据”)
私人名单;
@JsonProperty(“数据”)
私人名单;
@JsonProperty(“数据”)
私人名单;
您可以制作一个getter,如:
@JsonProperty("data")
public List getData(){
if(zList != null){
return zList;
}else if(yList != null){
return yList;
}
else if(xList != null) {
return xList;
}else{
return Collections.emptyList(); //or whatever
}
}
记住从字段中删除jsonproperty注释
@JsonProperty("data")
public List getData(){
if(zList != null){
return zList;
}else if(yList != null){
return yList;
}
else if(xList != null) {
return xList;
}else{
return Collections.emptyList(); //or whatever
}
}