3

REST サービスでクライアントへの応答を生成するためJAXBにクラスを使用します。JSONProviderそして、一つ面白いものを見つけました。私はマッピングを持っています:

@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 である必要があると思います。

4

1 に答える 1

2

JAXBチュートリアルによると、値がないことは 3 つの異なる方法で表現できます。

  • 要素が省略されています
  • @XmlElement(required = true)アノテーションを使用した空の文字列
  • 注釈を使用して特別なxsi:nil属性を持つ@XmlElement(nillable = true)

あなたの質問に厳密に答える: JAXB は、空のオブジェクトの への変換をサポートしていませんnull

于 2012-06-27T10:38:11.807 に答える