簡體   English   中英

JSONProvider返回空對象,例如String

[英]JSONProvider returns empty objects such as String

我使用JAXBJSONProvider類在REST服務中生成對客戶端的響應。 我發現了一件有趣的事情。 我有映射:

@XmlRootElement(name = "fooRoot")
@XmlAccessorType(XmlAccessType.FIELD)
public class WSBar {
     private WSFooTO foos;
//...
}

@XmlRootElement(name = "foos")
@XmlAccessorType(XmlAccessType.FIELD)
public class WSFooTO {
    private WSDateTO one;
    private WSDateTO two;
    private WSDateTO three;
    private WSDateTO four;
//....
}

當我將響應設置為空對象時,我的意思是:只是new WSDateTO()new WSFooTO ()之后,我會這樣回答:

{"fooRoot":{
    "foos":{
        "one":"",
        "two":"",
        "three":"",
        "four":""
    }
}}

為什么會發生? 我希望它應該是:“ one”:null,“ two”:null

根據JAXB 教程 ,值的缺失可以用三種不同的方式表示:

  • 元素被省略
  • 使用@XmlElement(required = true)注釋的空字符串
  • 使用@XmlElement(nillable = true)注釋的單獨xsi:nil屬性

嚴格回答您的問題:JAXB不支持將空對象轉換為null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM