【文件属性】:
文件名称:XStream组件进行Object与XML互转用法
文件大小:48KB
文件格式:DOCX
更新时间:2018-05-20 10:18:13
XStream Object XML java
XStream组件进行Object与XML互转用法
1.所需求jar包: xstream-1.3.1.jar
2.如果仅进行OBJECT与XML之间互转只需要这一个jar 包及XStream这一个类就可又了
用法说明:
1.OBJECT 转XML
//第一步:准备好要进行XML转换的OBJECT对象,并且类里的属性都要有get与Set方法;
如下:
Address address1 = new Address("郑州市经三路", "450001");
Address address2 = new Address("西安市雁塔路", "710002");
List addList = new ArrayList();
addList.add(address1);
addList.add(address2);
Profile profile = new Profile("软件工程师", "13512129933", "备注说明");
Person person = new Person("熔岩", "27", profile, addList);
//第二步:创建一个XStream对象
XStream xStream = new XStream();
//第三步:进行转换
String xml = xStream. toXML(person);
System.out.println(xml);
//输出如下:
//你会发明输出的XML节点的类名是类的全路径名
//如果要解决这一问题就需要进行转换前的装配XStream为此提供一个配置类名的方法 alias(“nodeName”,”class”);
其中nodeName 即XML的节点名称
其中class 即要映射到XML节点上的类
如:
xStream.alias("PERSON", Person.class);
xStream.alias("PROFILE", Profile.class);
xStream.alias("ADDRESS", Address.class);
//配置完成输出结果
可以看出person类的name和age属性映射出的节点名称与属性名称相同,那么XStream也支持对类属性的映射配置方法 : aliasField(“节点名称”,”类名称”,”属性名”)
如下:
xStream.aliasField("PROFILE", Person.class, "profile");
xStream.aliasField("ADDLIST", Person.class, "addlist");
xStream.aliasField("Add", Address.class, "add");
xStream.aliasField("Job", Profile.class, "job");
注:如果没有特殊要求最好不要配置属性节点的映射,否则如果再将生成的XML转换成OBJECT时将会非常麻烦。
//如果我们想实现又下的需求。
//XStream 还提供了装配节点属性的方法, useAttributeFor(“类”, “属性名”);
如下:
xStream.useAttributeFor(Person.class,”name”);
xStream.useAttributeFor(Person.class,”age”);
2.XML转OBJECT
XML 转OBJECT 只要调用xStream.fromXML(xml)方法,但同样要进行相关属性及类的映射。