XStream学習ノート
22418 ワード
Xstreamを使用すると、煩雑なxmlとJavaBeanの変換を完了できます.
gradle依存性:
まず、非常に簡単な例を見てみましょう.例1:
出力結果:
例2:
出力結果:
例3:
出力結果:
例4:
例5:
例6:
出力結果:
例7:
例8:
参考資料:http://www.yiibai.com/xstream/xstream_first_application.html
gradle依存性:
compile 'com.thoughtworks.xstream:xstream:1.4.8'
compile 'dom4j:dom4j:1.6.1'
まず、非常に簡単な例を見てみましょう.例1:
@Test
public void test01(){
// 1、 XStream
XStream xStream = new XStream();
// 2、 ( , alias )
xStream.alias("person",Person.class);
// 3、
Person p = new Person("liwei","123456",28,14.19);
// 4、 xml
String xml = xStream.toXML(p);
System.out.println(xml);
}
出力結果:
<person>
<username>liwei</username>
<password>123456</password>
<age>28</age>
<price>14.19</price>
</person>
例2:
/** * */
@Test
public void test02(){
// 1、 XStream
XStream xStream = new XStream();
// 2、 ( , alias )
xStream.alias("person",Person.class);
// , username, xml nickname( )
xStream.aliasField("nickname",Person.class,"username");
// 3、
Person p = new Person("liwei","123456",28,14.19);
// 4、 xml
String xml = xStream.toXML(p);
System.out.println(xml);
}
出力結果:
<person>
<nickname>liwei</nickname>
<password>123456</password>
<age>28</age>
<price>14.19</price>
</person>
例3:
/** * * password xml xml */
@Test
public void test03(){
// 1、 XStream
XStream xStream = new XStream();
// 2、 ( , alias )
xStream.alias("person",Person.class);
// , username, xml nickname( )
xStream.aliasField("nickname",Person.class,"username");
xStream.useAttributeFor(Person.class,"password");
// 3、
Person p = new Person("liwei","123456",28,14.19);
// 4、 xml
String xml = xStream.toXML(p);
System.out.println(xml);
}
出力結果:
<person password="123456">
<nickname>liwei</nickname>
<age>28</age>
<price>14.19</price>
</person>
例4:
@Test
public void test04(){
XStream xStream = new XStream();
xStream.alias("person",Person.class);
xStream.alias("persons",List.class);
List<Person> personList = new ArrayList<>();
Person p1 = new Person("liwei","123456",28,14.19,new Group(1," "));
Person p2 = new Person("zhouguang","666666",28,25.26,new Group(2," "));
Person p3 = new Person("huzhenyu","88888",23,16.18,new Group(3," "));
Person p4 = new Person("wudi","9999",25,18.14,new Group(4," "));
personList.add(p1);
personList.add(p2);
personList.add(p3);
personList.add(p4);
String xml = xStream.toXML(personList);
System.out.println(xml);
}
例5:
/** * ,xml , */
@Test
public void test05(){
XStream xStream = new XStream();
xStream.alias("person",Person.class);
xStream.alias("persons",List.class);
// xStream.addImplicitCollection(Person.class,"List");
List<Person> personList = new ArrayList<>();
Person p1 = new Person("liwei","123456",28,14.19,new Group(1," "));
Person p2 = new Person("zhouguang","666666",28,25.26,new Group(2," "));
Person p3 = new Person("huzhenyu","88888",23,16.18,new Group(3," "));
Person p4 = new Person("wudi","9999",25,18.14,new Group(4," "));
personList.add(p1);
personList.add(p2);
personList.add(p3);
personList.add(p4);
String xml = xStream.toXML(personList);
System.out.println(xml);
}
例6:
@Test
public void test06(){
XStream xStream = new XStream();
xStream.alias("group",Group.class);
xStream.alias("person",Person.class);
xStream.addImplicitCollection(Group.class,"personList");
Group group = new Group(1," ");
Person p1 = new Person("liwei","123456",28,14.19,new Group(1," "));
Person p2 = new Person("zhouguang","666666",28,25.26,new Group(2," "));
Person p3 = new Person("huzhenyu","88888",23,16.18,new Group(3," "));
Person p4 = new Person("wudi","9999",25,18.14,new Group(4," "));
group.addPerson(p1);
group.addPerson(p2);
group.addPerson(p3);
group.addPerson(p4);
String xml = xStream.toXML(group);
System.out.println(xml);
}
出力結果:
<group>
<id>1</id>
<name> </name>
<person>
<username>liwei</username>
<password>123456</password>
<age>28</age>
<price>14.19</price>
<group>
<id>1</id>
<name> </name>
</group>
</person>
<person>
<username>zhouguang</username>
<password>666666</password>
<age>28</age>
<price>25.26</price>
<group>
<id>2</id>
<name> </name>
</group>
</person>
<person>
<username>huzhenyu</username>
<password>88888</password>
<age>23</age>
<price>16.18</price>
<group>
<id>3</id>
<name> </name>
</group>
</person>
<person>
<username>wudi</username>
<password>9999</password>
<age>25</age>
<price>18.14</price>
<group>
<id>4</id>
<name> </name>
</group>
</person>
</group>
例7:
/** * XML */
@Test
public void test07(){
XStream xStream = new XStream();
xStream.alias("person",Person.class);
String xml = "<person><username>liwei</username><password>123456</password></person>";
Person person = (Person) xStream.fromXML(xml);
System.out.println(person.getUsername());
System.out.println(person.getPassword());
}
例8:
@Test
public void test08(){
XStream xStream = new XStream();
xStream.alias("persons",List.class);
xStream.alias("person",Person.class);
List<Person> personList =
(List<Person>)xStream.fromXML(XstreamTest.class.getClassLoader().getResourceAsStream("user.xml"));
for(Person person:personList){
System.out.println(person);
}
}
参考資料:http://www.yiibai.com/xstream/xstream_first_application.html