<?xml version="1.0" encoding="UTF-8" ?>
<person>
<name>yunyun</name>
<gender>true</gender>
<address>shanghai</address>
<contents>cc</contents>
<contents>ss</contents>
<taxs>
<string>1</string>
<string>2</string>
<string>3</string>
</taxs>
</person>
<person>
<name>yunyun</name>
<gender>true</gender>
<address>shanghai</address>
<contents>cc</contents>
<contents>ss</contents>
<taxs>
<string>1</string>
<string>2</string>
<string>3</string>
</taxs>
</person>JavaBean
public class Person2 {
private String name;
private boolean gender;
private String homeAddress;
private List<String> contentslist;
private String[] taxs;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}测试类 解析xml 反序列化到javaBean object
public class TestXmlToObject2 {
public static final XStream xstream=new XStream();
static{
xstream.alias("person", Person2.class);//类别名
xstream.aliasField("address", Person2.class, "homeAddress"); //属性别名
xstream.alias("contents",String.class);//private List<String> contentslist;是string类型
xstream.addImplicitCollection(Person2.class, "contentslist");//隐式集合 隐藏contentslist
Person2 person=(Person2)xstream.fromXML(TestXmlToObject2.class.getClassLoader().getResourceAsStream("person02.xml"));
System.out.println(person.toString());
}
public static void main(String[] args) {
}
}二: 注解方式
xml:
<?xml version="1.0" encoding="UTF-8" ?>
<person>
<name>yunyun</name>
<gender>true</gender>
<address>shanghai</address>
<company>yihaodian</company>
<sources>
<string>firstSources</string>
<string>secondSources</string>
</sources>
<part>firstPart</part>
<part>secondPart</part>
</person>javaBean
@XStreamAlias("person")
public class Person3 {
private String name;
private boolean gender;
@XStreamAlias("address")
private String homeAddress;
private String company;
@XStreamImplicit(itemFieldName="part")
private List<String> content;
private String[] sources;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
测试
public class TestXmlToObject3 {
public static final XStream xstream=new XStream();
static{
xstream.processAnnotations(Person3.class);//显示声明使用注解
xstream.autodetectAnnotations(true);
Person3 person=(Person3)xstream.fromXML(TestXmlToObject3.class.getClassLoader().getResourceAsStream("person03.xml"));
System.out.println(person.toString());
}
public static void main(String[] args) {
}
}POM.xml
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
本文介绍如何使用XStream将XML文件转换为JavaBean对象,包括配置属性别名、隐式集合及使用注解的方式。提供了详细的代码示例,帮助读者理解整个过程。
2927

被折叠的 条评论
为什么被折叠?



