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