`

JAVA第三方开源库之XStream

阅读更多
XStream是一个开源项目,利用它可以方便的进行java对象和xml之间进行转换,从而在测试,服务器设置等方面有很好的应用。
先创建Java对象
1.Student类
package com.dheaven.demo.pojo;

public class Student {

	private int age;
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	private String name;
	public static void hi(int age,String name){
		System.out.println("你好,我叫"+name+";今年"+age+"岁!");
	}
}

2.测试类TestXStream
package com.dheaven.demo.xstream;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

import com.dheaven.demo.pojo.Student;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class TestXStream {
@Test
	public void testXStream(){
	
	Student student=new Student();
	student.setAge(20);
	student.setName("mengmeng");
	
	XStream xStream=new XStream(new DomDriver());
	
	String studentXML=xStream.toXML(student);
	
	System.out.println(studentXML);
Student studentpojo=(Student)	xStream.fromXML(studentXML);
System.out.println(studentpojo.getAge()+"\t"+student.getName());
}

@Test
public void testAlias(){

Student student=new Student();
student.setAge(20);
student.setName("mengmeng");

XStream xStream=new XStream(new DomDriver());
xStream.alias("student",Student.class);
String studentXML=xStream.toXML(student);

System.out.println(studentXML);
Student studentpojo=(Student)	xStream.fromXML(studentXML);
System.out.println(studentpojo.getAge()+"\t"+student.getName());
}
@Test
public void testComplexObj(){
	List<Student> list = new ArrayList<Student>();
	Student chb = new Student();
	chb.setAge(23);
	chb.setName("chb");
	list.add(chb);
	Student wl = new Student();
	wl.setAge(23);
	wl.setName("wl");
	list.add(wl);
	
	XStream xStream=new XStream(new DomDriver());
	xStream.alias("student", Student.class);
String xstramStr=	xStream.toXML(list);
	System.out.println(xstramStr);
	
	
       List<Student> student=(List<Student>) xStream.fromXML(xstramStr);
       
       System.out.println(student.get(0).getAge());
}
}


XStream的jar包可以直接到http://xstream.codehaus.org/下载,那里有一些简单例子

XStream是个很小的开源项目,所以它能实现的功能也就很有限,它只能包装简单类型的元素进行转换,复杂类型的,比如Calendar,Date等类型则需要用户自己实现Converter。

还有,XStream对xml的操作并不好,比如想把一个子节点变成属性就是一个很复杂的工作,但是大家平时用于测试的话,看看对象中到底存着什么数据,还是必要的。

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics