JAX-RS/JAXB JSON 到 POJO - 忽略 JSON 中 POJO 中不存在的字段

JAX-RS/JAXB JSON to POJO - Ignore fields in JSON that don't exist in the POJO

我正在开发一个 API,它需要能够处理 PUT/POST 上的 JSON 有效负载,它可能是已知 POJO 的超集。

例如:

@XmlRootElement
public FruitCounter
{
   int numberOfApples;
   int numberOfOranges;

   public int getNumberOfApples()
   {
      return this.numberOfApples();
   }

   public int setNumberOfApples(int numberOfApples)
   {
      this.numberOfApples = numberOfApples;
   }

   public int getNumberOfOranges()
   {
      return this.numberOfOranges();
   }

   public int setNumberOfOranges(int numberOfOranges)
   {
      this.numberOfOranges = numberOfOranges;
   }
}

在执行 GET 时将按照以下行生成 JSON:

{
   numberOfApples: 4,
   numberOfOranges: 7
}

我们需要能够像下面这样处理 JSON 有效负载,以更新苹果和橙子的计数,但不对梨执行任何操作。

{
   numberOfApples: 9,
   numberOfOranges: 19,
   numberOfPears: 21
}

有什么干净的方法可以做到这一点吗?

在 class

之上添加 @JsonIgnoreProperties(ignoreUnknown = true)
   @JsonIgnoreProperties(ignoreUnknown = true)    
    @XmlRootElement
    public FruitCounter
    {
       int numberOfApples;
       int numberOfOranges;

       public int getNumberOfApples()
       {
          return this.numberOfApples();
       }

       public int setNumberOfApples(int numberOfApples)
       {
          this.numberOfApples = numberOfApples;
       }

       public int getNumberOfOranges()
       {
          return this.numberOfOranges();
       }

       public int setNumberOfOranges(int numberOfOranges)
       {
          this.numberOfOranges = numberOfOranges;
       }
    }

同时检查 this 似乎是同一个问题的问题。