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的操作并不好,比如想把一个子节点变成属性就是一个很复杂的工作,但是大家平时用于测试的话,看看对象中到底存着什么数据,还是必要的。
分享到:
相关推荐
已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK 短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入...
已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK 短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入...
已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK+短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库...
已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK+短信验证码 Zxing二维码库 百度地图定位SDK 谷歌依赖注入库...
7. **第三方库支持** - XStream 通常与其他 Java 库兼容,例如 Hibernate 和 Spring,能够轻松集成到现有的项目架构中。 8. **教程和示例** - 虽然没有在描述中明确提到,但通常 XStream 的发行版会包含教程或...
7. **XStream**: XStream是一个开源库,它能将Java对象直接转换为XML,反之亦然,无需编写任何额外的代码。这对于序列化和反序列化Java对象到XML非常有用。 在实际项目中,选择哪种方式取决于具体需求,如数据量、...
- NOTICE.txt: 这个文件通常包含对第三方软件的使用通知和版权信息。 这些许可证文件对于开发者来说非常重要,因为它们确保了在使用Struts2时遵守了所有依赖库的开源许可条款。 总的来说,Struts2.3.1文档包含了...
同时,NOTICE.txt文件可能包含了关于项目中使用的第三方库的信息以及版权声明。 5. **模板引擎**:FREEMARKER-LICENSE.txt、ANTLR-LICENSE.txt和XPP3-LICENSE.txt等文件暗示了Struts2依赖于这些开源库。FreeMarker...
压缩包内的文件名称列表揭示了Struts 2.3.14依赖的一些第三方库及其许可协议: 1. **OVAL-LICENSE.txt** - OGNL(Object-Graph Navigation Language)的许可证文件,这是一个强大的表达式语言,用于在Java对象图上...
为了实现JSON和XML视图,SpringMVC依赖于一些第三方库,包括: 1. json-lib:这是一个纯Java的JSON处理库,可以将Java对象转换为JSON字符串,反之亦然。 2. Jackson:Jackson是另一个流行的JSON库,它提供了高效的...
9. **其他依赖**:Drools 还依赖于许多其他的开源库,如 Commons Lang、SLF4J、Hibernate 等,它们为 Drools 提供了日志、数据持久化和通用工具等功能。 为了成功搭建 Drools 6.3.0 Workbench,你需要确保所有的 ...
10. **NOTICE.txt**: 此文件通常列出所有在项目中使用的第三方库,并提及它们的版权和许可信息,以满足开源许可证的要求。 通过这些文件,我们可以了解到Struts2框架依赖的众多开源组件以及它们的许可条件。这些...
在给定的压缩包文件中,我们看到的是一些开源许可证文件,这些都是Struts2依赖的第三方库的许可协议。每个`.LICENSE.txt`文件对应的是一个特定的开源组件,例如: 1. **OVAL-LICENSE.txt**: OGNL (Object-Graph ...
12. **NOTICE.txt**:此文件通常包含对所有第三方组件的版权和版权信息,以及可能需要公开的源代码链接。 Struts2.3.37的使用涉及到一系列开源组件的集成,包括但不限于FreeMarker、SiteMesh和OGNL等,这些组件共同...
9. **XML处理**: Java的标准库JAXB和DOM,第三方库如JDom、XStream等,用于XML文档的解析、生成和操作。 10. **Test工具**: JUnit、Mockito等测试框架,用于编写单元测试和集成测试,确保代码质量。 了解和熟练...
这些jar包包含了jbpm核心功能以及与之兼容的第三方库,确保了系统能够最小化地启动并运行。测试表明,这些jar包是运行jbpm4.4的基础,无需额外添加大量依赖,从而降低了系统的复杂性。 1. **核心组件**:jbpm的核心...
- 提供的压缩包文件包括了多个第三方库,这些库在Tomcat运行时可能扮演关键角色: - `xalan-2.7.1.jar`:XSLT处理器,用于XML文档转换。 - `xercesImpl-2.9.1.jar`:XML解析器,处理XML文档的读取和验证。 - `...
8. **NOTICE.txt**:此文件通常包含了对第三方库的额外通知和免责声明。 这些文件共同构成了Struts2框架及其依赖的完整集合,为开发者提供了一个可以立即投入开发的环境。通过理解和掌握这些文件背后的技术,开发者...
“工具”可能指的是使用的一些第三方库,如以下压缩包文件所示: - poi-ooxml-schemas-3.7-20101029.jar, poi-3.7-20101029.jar, poi-ooxml-3.7-20101029.jar:Apache POI 是用于读写Microsoft Office格式文件的库...