如何使用XStream将对象列表转换为XML文档

11 java xml xstream

如何使用XStream将对象列表转换为XML文档?

以及如何将其反序列化?

这是我的xml

<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person>  
  <fullname>Guilherme</fullname>
  <age>10</age>
  <address>address,address,address,address,</address>
</person>
<person>  
  <fullname>Guilherme</fullname>
  <age>10</age>
  <address>address,address,address,address,</address>
</person>
</persons>
Run Code Online (Sandbox Code Playgroud)

Person bean包含3个字段如何使用自定义转换器将其转换回Bean List?

dog*_*ane 22

您不一定需要CustomConverter.

您需要一个班级来保存您的列表:

public class PersonList {

    private List<Person> list;

    public PersonList(){
        list = new ArrayList<Person>();
    }

    public void add(Person p){
        list.add(p);
    }
}
Run Code Online (Sandbox Code Playgroud)

要将列表序列化为XML:

    XStream xstream = new XStream();
    xstream.alias("person", Person.class);
    xstream.alias("persons", PersonList.class);
    xstream.addImplicitCollection(PersonList.class, "list");

    PersonList list = new PersonList();
    list.add(new Person("ABC",12,"address"));
    list.add(new Person("XYZ",20,"address2"));

    String xml = xstream.toXML(list);
Run Code Online (Sandbox Code Playgroud)

要将xml反序列化为人员对象列表:

    String xml = "<persons><person>...</person></persons>";
    PersonList pList = (PersonList)xstream.fromXML(xml);
Run Code Online (Sandbox Code Playgroud)