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

时间:2016-03-07 10:58:42

标签: java json jaxb jax-rs

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

例如:

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

有没有干净的方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

在课堂上添加@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问题。