序列化之XML序列化技术

优点:

1、可读性比较好,

2、有利于调试

3、XML序列化与语言无关

缺点:

1、序列化化后码流比较大,【主要是因为使用标签对来表示数据】

2、效率不高

使用场景:

1、对性能要求不高,且QPS较低的企业级内部系统之间的数据交换的场景

2、由于与语言无关,因此,可以使用到异构系统之间的数据交换协议,如WebService相关协议

使用方法:

序列化主要使用了XStream类的toXML(obj)方法,将obj对象转换为String类型,然后,再转换成字节数组。

反序列化主要使用到了XStream类fromXML(str)方法,先将字节数组,转换成字符串类型,然后,再利用fromXML()进行反序列化。

package com.xingej.ser.impl;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.xingej.ser.ISerializer;

public class XMLSerializer implements ISerializer {

	// 初始化XStream对象
	private static final XStream XStream = new XStream(new DomDriver());

	@Override
	public <T> byte[] serialize(T obj) {
		String objStr = XStream.toXML(obj);
		return objStr.getBytes();
	}

	@SuppressWarnings("unchecked")
	@Override
	public <T> T deserialize(byte[] data, Class<T> clazz) {
		// 将字节数组,封装成字符串
		String xml = new String(data);
		return (T) XStream.fromXML(xml);
	}
}

pom文件

    <!--XStream 序列化-->
	<dependency>
	    <groupId>com.thoughtworks.xstream</groupId>
	    <artifactId>xstream</artifactId>
	    <version>1.4.9</version>
	</dependency>
时间: 2024-12-24 11:52:48

序列化之XML序列化技术的相关文章

IOSerialize,xml和json,soap序列化器,二进制序列化器,XML序列化器,文件 检查、新增、复制、移动、删除

1 文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/读取配置文件3 三种序列化器4 xml和json1.文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/读取配置文件 using System.IO; /// <summary> /// 配置绝对路径 /// </summary> private static string LogPath = ConfigurationManager.AppSettings["LogPath&

XML序列化反序列化—常用类

public class XMLSerializer    {        #region (public) xml序列化        /// <summary>        /// xml序列化        /// </summary>        /// <param name="obj">obj类</param>        /// <returns>string字符串</returns>    

[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口IXmlSerializable实现XML序列化及XML通用类

[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口IXmlSerializable实现XML序列化及XML通用类 本节导读:本节主要介绍通过序列化接口IXmlSerializable实现XML序列化和反序列化,整理了XML基础操作及序列化的通用类(包括XML及节点的基础读写操作,XML到DataSet\DataTable互转换操作,XML序列化及反序列化通用方法等). 读前必备: A.类和类的实例 [.net 面向对象编程基础]  (9) 类和类的

.NET关于XML序列化

本篇文章主要是针对.NET开发中的XML序列化,在开发项目中,编写应用程序时有时需要将程序的数据写入某个文件或将它传输网络中的另一台计算机上,这时需要使用序列化和反序列化的技术. 首先介绍下什么是序列化? -------序列化 含义:     指把程序中对象的相关数据保存到文件中去. 目的:    1.以某种存储形式使自定义对象持久化: 2.将对象的类声明为可以序列化. 注:关于反序列化的知识在本篇文章不做解释,如有兴趣的学者敬请关注小哥的博客,在后小哥会一一介绍. 关于序列化,在.NET中可以

XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置

这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对象如果需要传递给其他系统使用:或者在关机时需要保存下来以便下次再次启动程序使用就需要序列化和反序列化. 范围:本文只介绍xml序列化,其实序列化可以是二进制的序列化,也可以是其他格式的序列化. 看一段最简单的Xml序列化代码 1 2 3 4 5 6 7 8 9 10 11 12 class Prog

在.net中序列化读写xml方法的总结

在.net中序列化读写xml方法的总结 阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数组的做为数据成员的序列化 类型继承与反序列化 反序列化的实战演练 反序列化的使用总结 排除不需要序列化的成员 强制指定成员的序列化顺序 自定义序列化行为 序列化去掉XML命名空间及声明头 XML的使用建议 XML是一种很常见的数据保存方式,我经常用它来保存一些

XML 序列化与反序列化

XML序列化与反序列化 1.将一个类转化为XML文件 /// <summary> /// 对象序列化成XML文件 /// </summary> /// <param name="type">对象类型</param> /// <param name="obj">对象</param> /// <param name="fileName">序列化的XML文件路径<

使用XML序列化器生成XML文件和利用pull解析XML文件

首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message> <sms> <body> 陈驰0 </body> <date> 1462162910995 </date> <address> 1380 </address> <type> 1 </type> &

net中序列化读写xml

参考http://www.cnblogs.com/fish-li/archive/2013/05/05/3061816.html 我们可以直接使用XmlTextReader.XmlDocument.XPath来取数XML中的数据, 也可以使用LINQ TO XML或者反序列化的方法从XML中读写数据,我各人比较喜欢序列化.反序列化方法. 1.默认情况下,不添加任何属性标签的对象属性都序列化为一个节点.如下一个Student对象序列化结果如下: public class Student { pub