xstream练习

版权声明:本文为博主原创文章,未经博主允许不得转载,转载需在醒目位置注明出处。 https://blog.csdn.net/sinat_28771747/article/details/79436931

xtream用于javabean和.xml文件之间的序列化与反序列化操作。下面是我自己做的相关练习,我把代码贴出来以供分享。

定义了三个类:Classes  班级类

                         Student 学生类

                        MapBean 用于单独测试map转成xml之后的xiaoguo

public class Classes {
	public Classes() {
		// TODO Auto-generated constructor stub
	}
	private String className;
	private List<Student> students;
	public String getClassName() {
		return className;
	}
	public void setClassName(String className) {
		this.className = className;
	}
	public List<Student> getStudents() {
		return students;
	}
	public void setStudents(List<Student> students) {
		this.students = students;
	}
	@Override
	public String toString() {
		
		System.out.println(className);
		return className;
	}
	
}
public class Student {
	
	private String name;
	private Integer age;
	
	
	public Student() {	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	
}
public class MapBean {
	public MapBean() {
		// TODO Auto-generated constructor stub
	}
	private Map<String, String> servlet;
	private Map<String,String> mapping;
	public Map<String, String> getServlet() {
		return servlet;
	}
	public void setServlet(Map<String, String> servlet) {
		this.servlet = servlet;
	}
	public Map<String, String> getMapping() {
		return mapping;
	}
	public void setMapping(Map<String, String> mapping) {
		this.mapping = mapping;
	}
	
}

/**
 * 测试X-Stream的使用
 * @author 杨承
 *
 */

public class MainClass {
	public static void main(String[] args){
		mapToXml();
	}
	
	public static void objToXml(){
		XStream xStream=new XStream(new DomDriver());
		xStream.alias("student", Student.class);
		xStream.alias("Classes", Classes.class);
		
		Student stu=new Student();
		Student stu2=new Student();
		stu.setName("校花");
		stu.setAge(23);
		
		stu2.setName("校草");
		stu2.setAge(23);
		
		Classes classes=new Classes();
		List<Student> list=new ArrayList<>();
		list.add(stu);
		list.add(stu2);
		classes.setClassName("班级一");
		classes.setStudents(list);
		System.out.println(xStream.toXML(classes));
	}
	
	public static void xmlToObj(){
		XStream xStream=new XStream(new DomDriver());
		xStream.alias("student", Student.class);
		xStream.alias("Classes", Classes.class);
		Classes classes=new Classes();
		//文件存放在项目的根目录下
		xStream.fromXML(new File("Classes.xml"), classes);
		classes.toString();
	}
	
	
	public static void mapToXml(){
		
		XStream xStream=new XStream(new DomDriver());
		xStream.alias("root", MapBean.class);
		
		Map<String, String> urlToName=new HashMap<>();
		urlToName.put("/login", "login");
		urlToName.put("/log", "login");
		urlToName.put("/reg", "reg");
		
		Map<String, String> nameToObj=new HashMap<>();
		
		nameToObj.put("login", "httpServer.demo3.LoginServlet");
		nameToObj.put("reg", "httpServer.demo3.RegistServlet");
		
		MapBean bean=new MapBean();
		bean.setMapping(urlToName);
		bean.setServlet(nameToObj);
		System.out.println(xStream.toXML(bean));
	}
}
objToXml()的执行结果:
<Classes>
  <className>班级一</className>
  <students>
    <student>
      <name>校花</name>
      <age>23</age>
    </student>
    <student>
      <name>校草</name>
      <age>23</age>
    </student>
  </students>
</Classes>
xmlToObj();执行结果:班级一(证明xml中的数据被封装到了);

mapToXml();执行结果

<root>
  <servlet>
    <entry>
      <string>reg</string>
      <string>httpServer.demo3.RegistServlet</string>
    </entry>
    <entry>
      <string>login</string>
      <string>httpServer.demo3.LoginServlet</string>
    </entry>
  </servlet>
  <mapping>
    <entry>
      <string>/login</string>
      <string>login</string>
    </entry>
    <entry>
      <string>/log</string>
      <string>login</string>
    </entry>
    <entry>
      <string>/reg</string>
      <string>reg</string>
    </entry>
  </mapping>
</root>

相关jar包下载地址:http://download.csdn.net/download/sinat_28771747/10268548


猜你喜欢

转载自blog.csdn.net/sinat_28771747/article/details/79436931