xstream的简单使用

xstream也是一个比较好用的java对象转xml的工具,之前由于长期使用dom4j的缘故,都没研究过这玩意儿,最近由于搞微信开发的缘故要生成xml,但是又觉得dom4j有点繁琐,之后就找到了xstream的资料,顺便学了下觉得还是挺好用,因此推荐给大家。

1 jar包的下载地址

http://xstream.codehaus.org/download.html

这里推荐使用1.3.1这个版本,貌似大部分人都用的这个

2 xstream的基本使用

(1) xstream的初始化

(2)设置别名

(3)转换

// XStream初始化
XStream xstream = new XStream();
XStream xstream = new XStream(new DomDriver());

// 设置别名(可选)
xstream.alias("person", Person.class);

// 将Java对象转换为XML
xstream.toXML(person);

// 将XML转换为Java对象
Person person = xstream.fromXML(xml);

这段代码大部分还是实用,但是如果有特殊字符如 >   ,  <   , &就会出现解析错误 ,因此要给xml添加扩展,反正就是一大堆的内部类,来一起看下

//xstream扩展
private static XStream xstream = new XStream(new XppDriver() {
		public HierarchicalStreamWriter createWriter(Writer out) {
			return new PrettyPrintWriter(out) {
				// 对所有xml节点都增加CDATA标记
				boolean cdata = true;

				public void startNode(String name, Class clazz) {
					super.startNode(name, clazz);
				}

				protected void writeText(QuickWriter writer, String text) {
					if (cdata) {
						writer.write("<![CDATA[");
						writer.write(text);
						writer.write("]]>");
					} else {
						writer.write(text);
					}
				}
			};
		}
});

看着有点恐怖啊,不过又没必要背下来

3 赖看下我写的一个工具类

package org.lxh;

import java.io.Writer;
import java.util.List;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.core.util.QuickWriter;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import com.thoughtworks.xstream.io.xml.PrettyPrintWriter;
import com.thoughtworks.xstream.io.xml.XppDriver;

public class XstreamUtil {

	//xstream扩展
	private static XStream xstream = new XStream(new XppDriver() {
		public HierarchicalStreamWriter createWriter(Writer out) {
			return new PrettyPrintWriter(out) {
				// 对所有xml节点都增加CDATA标记
				boolean cdata = true;

				public void startNode(String name, Class clazz) {
					super.startNode(name, clazz);
				}

				protected void writeText(QuickWriter writer, String text) {
					if (cdata) {
						writer.write("<![CDATA[");
						writer.write(text);
						writer.write("]]>");
					} else {
						writer.write(text);
					}
				}
			};
		}
	});

  public String object2Xml(Object obj,Object child,String alias,String aliasForChild){
	  xstream.alias(alias, obj.getClass());
	  xstream.alias(aliasForChild, child.getClass());
	  String xml=xstream.toXML(obj);
	  return xml;
  }

  public String object2Xml(Object obj,String alias){
	  xstream.alias(alias, obj.getClass());

	  String xml=xstream.toXML(obj);
	  return xml;
  }
}

是不是觉得很简单呢

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-25 07:22:52

xstream的简单使用的相关文章

XStream生成简单的XMl文件

一.生成简单的XML文件: 1.新建ResumeToXml.java文件 package com.saicfc.pmpf.resume.bocom.utils.resume; /** * 把Java对象转化成xml * @author lizhiyong * @version $Id: RefundToXml.java, v 0.1 2014年6月5日 下午3:44:54 Exp $ */ @SuppressWarnings("unused") public class ResumeT

XStream生成简单的XMl文件2

1.新建RequestInfo.java文件: package com.saicfc.pmpf.resume.ccb.utils; /** * 支付查询请求信息 * @author lizhiyong * @version $Id: RequestInfo.java, v 0.1 2014年7月24日 下午2:43:39 Exp $ */ public class RequestInfo { public String REQUEST_SN; public String CUST_ID; pub

XStream将XML转换为JAVA对象快速指南

XStream是一套简单实用的JAVA类库,它用于序列化对象和XML对象之间互相转换.由于XStream配置简单,灵活易用,因此在XML对象和JAVA对象序列化市场上有很大的空间.本文并不会对XStream的特性做详细介绍,只是以实例的方式演示XStream是多么的容易上手. 1.XStream官网下载最新版的Jar包,上传到工程路径. 2.假设我们要将如下的XML对象转换为JAVA对象. <?xml version="1.0" encoding="UTF-8"

XStream使用

Xstream使用: (1)Xstream介绍 Xstream是一种OXMapping 技术,是用来处理XML文件序列化的框架,在将JavaBean序列化,或将XML文件反序列化的时候,不需要其它辅助类和映射文件,使得XML序列化不再繁索.Xstream也可以将JavaBean序列化成Json或反序列化,使用非常方便. (2)Xstream的简单例子 实例1: class Person//JavaBean实体类 { private String name; private int age; pu

XStream使用详解

1.Xstream介绍 (1)Xstream介绍 Xstream是一种OXMapping 技术,是用来处理XML文件序列化的框架,在将JavaBean序列化,或将XML文件反序列化的时候,不需要其它辅助类和映射文件,使得XML序列化不再繁索.Xstream也可以将JavaBean序列化成Json或反序列化,使用非常方便. (2)Xstream的简单例子 class Person//JavaBean实体类 { private String name; private int age; public

最受欢迎的Java第三方库

翻译自programcreek: 典型的Java项目通常会依赖一些第三方库,本文总结了一些最受欢迎的Java库,这些类库在各种应用程序中被广泛使用: 当然,Java SDK是最广泛使用的Java库,这个不用多说,本文的关注点是第三方库: 这份清单可能不是很完美,如果你觉得有些类库也应该被列举出来,那么请留下你的评论. Core核心库 Apache Commons Lang - 这是Apache的一个库,提供了许多辅助工具,如字符串处理,对象创建等,是对java.lang API的补充: Goog

Xstream 简单入门

参考了些资料: 在没有任何设置默认情况下, java到xml的映射, 是java成员名对应xml的元素名, java类的全名对应xml根元素的名字, 而实际中,往往是xml和java类都有了,要完成相互转换,必须进行别名映射. 别名配置包含三种情况: 1.类别名,用alias(String name, Class type). 2.类成员别名,用aliasField(String alias, Class definedIn, String fieldName) 3.类成员作为属性别名,用 al

XStream的使用方法、简单使用方法

下面介绍的是在Android Studio中的使用 Android Studio中目前支持的Xstream最高版本是xstream-1.4.7.jar,我是直接将jar包放到libs中使用的,因为我尝试在build.gradle中complie,但是编译的时候还是不通过. 我使用的是okhttp的client. 下面介绍的是项目开发中从网络获取xml文件并解析成javaBean的方法. 1.网络服务器中的xml文件 <person name="johnson"> <f

XStream和Json

XStream的作用 XStream可以把JavaBean对象转换成XML! 通常服务器向客户端响应的数据都是来自数据库的一组对象,而我们不能直接把对象响应给响应端,所以我们需要把对象转换成XML再响应给客户端,这时就需要使用XStream组合了. 2 XStream入门 为了演示XStream的作用,我们需要先写两个类,Province和City. City.java public class City { private String name; private String descrip