Java Jackson:将不同字段映射到一个JsonProperty

Java Jackson:将不同字段映射到一个JsonProperty,java,jackson,Java,Jackson,我有一个要求,其中我有一个名为Response的POJO类,它有3个不同的字段,在这3个字段中,只有一个字段会根据某些条件设置。我希望无论何时设置其中任何一个,都应该返回JsonProperty名称“data”。然而,在使用@JsonProperty(“数据”)定义所有3个字段时,我遇到了以下异常。我有没有办法用Jackson做到这一点 java.lang.IllegalArgumentException:表示属性“数据”的多个字段: @JsonInclude(Include.NON_NULL)

我有一个要求,其中我有一个名为Response的POJO类,它有3个不同的字段,在这3个字段中,只有一个字段会根据某些条件设置。我希望无论何时设置其中任何一个,都应该返回JsonProperty名称“data”。然而,在使用@JsonProperty(“数据”)定义所有3个字段时,我遇到了以下异常。我有没有办法用Jackson做到这一点

java.lang.IllegalArgumentException:表示属性“数据”的多个字段:

@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
  }
}