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

标签 java json jaxb jax-rs

我正在开发一个 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
}

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

最佳答案

在类顶部添加@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问题似乎是同一个问题。

关于java - JAX-RS/JAXB JSON 到 POJO - 忽略 POJO 中不存在的 JSON 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35841966/

相关文章:

java - 为什么在 Java 8 中对方法参数进行未经检查的转换时,返回类型的泛型会被删除?

java - 将文件类型从 JAVA000064 更改为 JAVA

python - 使用 Python/Pandas 处理嵌套在 JSON 中的 JSON

jaxb2-basics-annotate 插件迁移到 jaxb 3.0 和 jakarta 命名空间

java - 我应该如何处理要在 Java 中编码为 XML 的字符串中的换行符?

java - Android Facebook SDK ShareDialog 不返回回调

asp.net-mvc - 我应该通过 ASP.NET MVC 操作还是 WCF 公开 Web 方法?

android - Jackson + Gson + Retrofit 预期为 BEGIN_OBJECT 但为 BEGIN_ARRAY

java - 使用 JAXB : [ERROR] Unexpected <xsd:element> appears with an XSD file 时出现问题

java - Java中的Selector有什么好处