我有一个要求,其中我有一个名为Response的POJO类有3个不同的字段,在这3个字段中,只有其中一个将根据某些条件设置。我希望无论何时设置其中任何一个,都应该使用JsonProperty名称'data'返回。但是,在使用@JsonProperty(“data”)定义所有3个字段时,我得到的是异常。有什么方法可以用杰克逊来实现这个目标吗?
java.lang.IllegalArgumentException:表示属性“data”的多个字段:
@JsonInclude(Include.NON_NULL)
public class Response {
@JsonProperty("data")
private List<Z> zList;
@JsonProperty("data")
private List<Y> yList;
@JsonProperty("data")
private List<x> xList;
答案 0 :(得分:0)
你可以制作一个像以下一样的吸气剂:
@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注释。