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 似乎是同一个问题的问题。
我正在开发一个 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 似乎是同一个问题的问题。