私は何の問題もなく、次のようなオブジェクトを解析されました:JAXBを使用してJavaでネストされたXMLオブジェクトのリストを解析するにはどうすればよいですか?
<response>
<myObject>
<id>1</id>
<name>abc</name>
</myObject>
<myObject>
<id>2</id>
<name>def</name>
</myObject>
</response>
このようなクラスで:これは私のAPI呼び出しで、正常に動作します
@XmlRootElement(name="myObject")
public class MyObject{
@XmlElement(name="id")
long id;
@XmlElement(name="name")
String name;
/* getters and setters ... etc.. */
}
私はMyObjects
のリストなどを取得します期待される。 しかし、どのように私はこのタイプの応答扱うん:その後、私はあまりにも@XmlElementWrapper
を使用して考えた
@XmlRootElement(name="objectWrapper")
public class ObjectWrapper{
@XmlElement(name="myObject")
List<MyObject> myObject;
/* getters and setters ... etc.. */
}
、しかし:最初に
<response>
<objectWrapper>
<myObject>
<id>1</id>
<name>abc</name>
</myObject>
<myObject>
<id>2</id>
<name>def</name>
</myObject>
</objectWrapper>
</response>
を私はObjectWrapper
クラスを構築すると、このように、トリックを行うだろうと思いましたどうやって? クラスの@XmlRootElement
とリストの@XmlElementWrapper
を削除できますか?
編集:
@XmlRootElement(name="response")
public class Response {
@XmlElementWrapper(name="objectWrapper")
@XmlElement(name="myObject")
List<MyObject> myObject;
/* getters and setters ... etc.. */
}
あなたはObjectWrapper
クラスを必要としない:いいえ、私はあなたが単にこのようにそれを書くことができ@XmlRootElement
'ObjectWrapper'仕事ではなく、あなたのソリューションをしていますか? 'ObjectWrapper'と' MyObject'の両方に '@XmlRootElement'を持つことは問題ありません。 – Berger