`

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
分享到:
评论

相关推荐

    Android例子源码集成安卓主流优秀第三方组件框架.zip

    已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK 短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入...

    集成安卓主流优秀第三方组件框架.zip

    已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK 短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入...

    Android集成主流优秀第三方组件框架

    已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK+短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库...

    集成目前Android主流优秀第三方组件

    已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK+短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库...

    XStream-1.3.1

    7. **第三方库支持** - XStream 通常与其他 Java 库兼容,例如 Hibernate 和 Spring,能够轻松集成到现有的项目架构中。 8. **教程和示例** - 虽然没有在描述中明确提到,但通常 XStream 的发行版会包含教程或...

    Java转换xml源代码资料

    7. **XStream**: XStream是一个开源库,它能将Java对象直接转换为XML,反之亦然,无需编写任何额外的代码。这对于序列化和反序列化Java对象到XML非常有用。 在实际项目中,选择哪种方式取决于具体需求,如数据量、...

    struts-2.3.1-docs

    - NOTICE.txt: 这个文件通常包含对第三方软件的使用通知和版权信息。 这些许可证文件对于开发者来说非常重要,因为它们确保了在使用Struts2时遵守了所有依赖库的开源许可条款。 总的来说,Struts2.3.1文档包含了...

    struts---2.3.1(2)后半

    同时,NOTICE.txt文件可能包含了关于项目中使用的第三方库的信息以及版权声明。 5. **模板引擎**:FREEMARKER-LICENSE.txt、ANTLR-LICENSE.txt和XPP3-LICENSE.txt等文件暗示了Struts2依赖于这些开源库。FreeMarker...

    struts-2.3.14.rar

    压缩包内的文件名称列表揭示了Struts 2.3.14依赖的一些第三方库及其许可协议: 1. **OVAL-LICENSE.txt** - OGNL(Object-Graph Navigation Language)的许可证文件,这是一个强大的表达式语言,用于在Java对象图上...

    SpringMVC 使用JSON、XML视图

    为了实现JSON和XML视图,SpringMVC依赖于一些第三方库,包括: 1. json-lib:这是一个纯Java的JSON处理库,可以将Java对象转换为JSON字符串,反之亦然。 2. Jackson:Jackson是另一个流行的JSON库,它提供了高效的...

    搭建drools 6.3.0 workbench所需所有jar包

    9. **其他依赖**:Drools 还依赖于许多其他的开源库,如 Commons Lang、SLF4J、Hibernate 等,它们为 Drools 提供了日志、数据持久化和通用工具等功能。 为了成功搭建 Drools 6.3.0 Workbench,你需要确保所有的 ...

    struts2.3.16-II

    10. **NOTICE.txt**: 此文件通常列出所有在项目中使用的第三方库,并提及它们的版权和许可信息,以满足开源许可证的要求。 通过这些文件,我们可以了解到Struts2框架依赖的众多开源组件以及它们的许可条件。这些...

    struts源码

    在给定的压缩包文件中,我们看到的是一些开源许可证文件,这些都是Struts2依赖的第三方库的许可协议。每个`.LICENSE.txt`文件对应的是一个特定的开源组件,例如: 1. **OVAL-LICENSE.txt**: OGNL (Object-Graph ...

    struts-2.3.37.zip

    12. **NOTICE.txt**:此文件通常包含对所有第三方组件的版权和版权信息,以及可能需要公开的源代码链接。 Struts2.3.37的使用涉及到一系列开源组件的集成,包括但不限于FreeMarker、SiteMesh和OGNL等,这些组件共同...

    Tools:常用工具类

    9. **XML处理**: Java的标准库JAXB和DOM,第三方库如JDom、XStream等,用于XML文档的解析、生成和操作。 10. **Test工具**: JUnit、Mockito等测试框架,用于编写单元测试和集成测试,确保代码质量。 了解和熟练...

    jbpm4.4最小依赖jar包

    这些jar包包含了jbpm核心功能以及与之兼容的第三方库,确保了系统能够最小化地启动并运行。测试表明,这些jar包是运行jbpm4.4的基础,无需额外添加大量依赖,从而降低了系统的复杂性。 1. **核心组件**:jbpm的核心...

    tomcat 异常

    - 提供的压缩包文件包括了多个第三方库,这些库在Tomcat运行时可能扮演关键角色: - `xalan-2.7.1.jar`:XSLT处理器,用于XML文档转换。 - `xercesImpl-2.9.1.jar`:XML解析器,处理XML文档的读取和验证。 - `...

    Struts-2.2.3.1-all

    8. **NOTICE.txt**:此文件通常包含了对第三方库的额外通知和免责声明。 这些文件共同构成了Struts2框架及其依赖的完整集合,为开发者提供了一个可以立即投入开发的环境。通过理解和掌握这些文件背后的技术,开发者...

    jfinal实现在线投票系统

    “工具”可能指的是使用的一些第三方库,如以下压缩包文件所示: - poi-ooxml-schemas-3.7-20101029.jar, poi-3.7-20101029.jar, poi-ooxml-3.7-20101029.jar:Apache POI 是用于读写Microsoft Office格式文件的库...

Global site tag (gtag.js) - Google Analytics