[英]Jaxb REST JSON to know which param is empty and which param was not sent
我有一個帶有REST服務的Web應用程序。 我有一個帶有JAXB注釋的bean類:
@XmlRootElement(name = "foo")
class Foo {
@XmlElement
private String bar1;
@XmlElement
private Double bar2;
@XmlElement
private Double bar3;
}
然后,我使用JSON發送請求:
{
"foo" : {
"bar1" : "1",
"bar3" : ""
}
}
在請求中我想要:更新值bar1 ,並將null設置為值bar3
但是 ,在服務器上,我的類字段都帶有null ,我的意思是, bar2為null,因為我沒有發送它,而bar3也為null,因為我發送了它為空。 問題是:如何在服務器上了解發送了哪個參數以將其設置為null,以及沒有發送哪個參數,而我應該忽略它?
使用屬性訪問字段。
例
public class Foo
{
private Double bar;
public Double getBar()
{
return bar;
}
public void setBar(Double bar)
{
System.out.println("I am in setter! " + bar);
this.bar = bar;
}
}
現在,如果您嘗試反序列化
{
"bar" : ""
}
輸出到控制台是
I am in setter! null
如果您嘗試反序列化
{
}
那么沒有任何輸出到控制台-未訪問setter。
這樣您就可以在設置器中檢查值
@XmlElement
private Double bar3;
public void setBar3(Double bar3)
{
if (bar3 == null)
{
this.bar3 = new Double(-1);
}
this.bar3 = bar3;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.