序列化之XML序列化技术
优点:
1、可读性比较好,
2、有利于调试
3、XML序列化与语言无关
缺点:
1、序列化化后码流比较大,【主要是因为使用标签对来表示数据】
2、效率不高
使用场景:
1、对性能要求不高,且QPS较低的企业级内部系统之间的数据交换的场景
2、由于与语言无关,因此,可以使用到异构系统之间的数据交换协议,如WebService相关协议
使用方法:
序列化主要使用了XStream类的toXML(obj)方法,将obj对象转换为String类型,然后,再转换成字节数组。
反序列化主要使用到了XStream类fromXML(str)方法,先将字节数组,转换成字符串类型,然后,再利用fromXML()进行反序列化。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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文件
1
2
3
4
5
6
|
<!--XStream 序列化-->
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version> 1.4 . 9 </version>
</dependency>
|
本文转自故新51CTO博客,原文链接:http://blog.51cto.com/xingej/1959905 ,如需转载请自行联系原作者
序列化之XML序列化技术相关推荐
- net自带二进制序列化,XML序列化和ProtoBuf序列化的压缩对比
测试结果: ProtoBuf Length:115 BinaryFormatter Length:1177 XmlSerializer Length:814 xml length:825 做了一个各种 ...
- XML 序列化 【译】
原文连接:http://www.diranieh.com/NETSerialization/XMLSerialization.htm 总结: 介绍 XML 序列化示例 XML Schema 定义文档 ...
- 简单了解各种序列化技术-XML序列化框架介绍
XML序列化的好处在于可读性好,方便阅读和调试.但是序列化以后的字节码文件比较大,而且效率不高,适用于对性能不高,而且QPS较低的企业级内部系统之间的数据交换的场景,同时XML又具有语言无关性,所以还 ...
- 利用.NET的XML序列化解决系统配置问题
作者:未知 请作者速与本人联系 出自: http://blog.csdn.net/ycl111/ 在Web系统开发中,我们经常需要读取和设置一些系统配置项,常见的例如数据库连接字符串.上传路径等等 ...
- XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置
这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对 ...
- Atitit.json xml 序列化循环引用解决方案json
Atitit.json xml 序列化循环引用解决方案json 1. 循环引用1 2. 序列化循环引用解决方法1 2.1. 自定义序列化器1 2.2. 排除策略1 2.3. 设置序列化层次,一般3级别 ...
- Android之Xml序列化器生成xml文件
①先说一下将数据导成xml的优点: 1)XML文档的内容和结构完全分离 2)互操作性强 大多数纯文本的文件格式都具有这个优点.纯文本文件可以方便地穿越防火墙,在不同操作系统上的不同系统之间通信.而作为 ...
- c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)
我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. using System; using System.Collections.Ge ...
- XML序列化以及新增节点XMLHelper
介绍利用XMLHelper类实现XML的新建以及反序列化类的操作,XMLHelper见最底部 1.XML新增 document = XmlHelper.CreateXmlDocument(" ...
最新文章
- Linux下使用rsync最快速删除海量文件的方法
- 洛谷 P1055 ISBN号码【字符串+模拟】
- SpringBoot+MySQL+MyBatis+Shiro+AdminLTE
- 进程间通信 (IPC) 方法总结(三)
- comsol显示电场计算结果_在 COMSOL 中构建磁流体动力学多物理场模型
- MySQL-schema-sync 一款非常好用的 MySQL数据库同步工具
- php 开发百度聚合,百度地图api-百度地图API开发,使用MarkerClusterer进行点聚合的问题...
- 今晚直播丨一次特殊的 Oralce 硬解析性能问题的技术分享
- html 网络请求 json数据,写一个json格式API,http请求接收json数据
- 基于go的微服务搭建(七) - 服务发现和负载均衡
- 转 jquery使用技巧小结
- socket简介 - 获取简单网页内容
- 微信快捷回复技巧秘籍
- 电脑技巧:加装SSD固态硬盘注意事项,电脑速度超流畅
- python聚类系数_NetworkX 计算聚类系数的Python实现
- Error: not authorized on admin to execute command
- 本地颁发 SSL 证书,并开启 https 服务调试
- matlab 画qq图,科学网—[转载]R语言绘制QQ图 - 刘朋的博文
- 炫“库”行动-人大金仓有奖征文—金仓数据库入门体验
- Unity -TextMeshProUGUI 使用手册