如何使用JAXB来编组/取消编组MyBean的集合

mar*_*lai 6 java collections jaxb marshalling unmarshalling

我有一个MyBean注释

@XmlRootElement
public class MyBean ...
Run Code Online (Sandbox Code Playgroud)

编组/解组MyBean没有问题,例如

JAXBContext jaxbCtx = JAXBContext.newInstance(MyBean.class);
Marshaller m = jaxbCtx.createMarshaller();
m.marshal(myBean, writer);
Run Code Online (Sandbox Code Playgroud)

如何使用JAXB对集合或列表进行编组/解组?

我的尝试导致此错误:

javax.xml.bind.MarshalException
 - with linked exception:
[com.sun.istack.internal.SAXException2: unable to marshal type "java.util.ArrayList" as an element because it is missing an @XmlRootElement annotation]
    at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:304)
    at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:230)
Run Code Online (Sandbox Code Playgroud)

Tej*_*eni 4

您必须创建另一个类型元素MyBeanList并使用它。与 SO using JAXB to unmarshal/marshal a List<String>相关的内容