利用xstream进行java对象和xml之间的互相转化

来源:互联网 发布:王劲松演过的网络剧 编辑:程序博客网 时间:2024/06/05 16:17

利用xstream可以方便的进行java对象和xml之间互相转化。代码如下

1、java对象

import com.thoughtworks.xstream.annotations.XStreamAlias;@XStreamAlias("PERSON")public class Person {@XStreamAlias("name")String name;@XStreamAlias("age")String age;@XStreamAlias("job")String job;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getJob() {return job;}public void setJob(String job) {this.job = job;}}
其中,类名和属性名用xstream注解来标注,这种方式是通过注解形式来建立java对象属性和xml中节点的映射关系。方便后边代码的书写,不必要每个属性都写一遍alias,着实麻烦。

2、XMLConverter,具体实现xml与java对象转换的类

import com.thoughtworks.xstream.XStream;public class XMLConverter {/** * 由XML生成java对象 *  * @param <T> * @param xml * @param c * @return */@SuppressWarnings("unchecked")public static <T> T fromXML(String xml, Class<T> c) {T ret = null;XStream xs = new XStream();xs.processAnnotations(c);ret = (T) xs.fromXML(xml);return ret;}/** * 由java对象生成XML *  * @param <T> * @param t * @return */public static <T> String toXML(T t) {String xmlStr = null;XStream xs = new XStream();xs.processAnnotations(t.getClass());xmlStr = xs.toXML(t);return xmlStr;}}
3、测试类

import nju.software.dataexchange.xml.XMLConverter.XMLConverter;public class TestXstream {public static void main(String[] args) throws Exception {//以下是xml转换为person对象String message = "<PERSON>" + " <name>李明</name>" + " <age>27</age>"+ " <job>软件工程师</job>" + "</PERSON>";Person person = XMLConverter.fromXML(message, new Person().getClass());//打印生产的person对象的属性System.out.println(person.getName());System.out.println(person.getAge());System.out.println(person.getJob());//以下是person对象转换为xmlString xml_string = XMLConverter.toXML(person);System.out.println("以下是由person对象生成的xml:");System.out.println(xml_string);}}




原创粉丝点击