优点:

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序列化技术相关推荐

  1. net自带二进制序列化,XML序列化和ProtoBuf序列化的压缩对比

    测试结果: ProtoBuf Length:115 BinaryFormatter Length:1177 XmlSerializer Length:814 xml length:825 做了一个各种 ...

  2. XML 序列化 【译】

    原文连接:http://www.diranieh.com/NETSerialization/XMLSerialization.htm 总结: 介绍 XML 序列化示例 XML Schema 定义文档 ...

  3. 简单了解各种序列化技术-XML序列化框架介绍

    XML序列化的好处在于可读性好,方便阅读和调试.但是序列化以后的字节码文件比较大,而且效率不高,适用于对性能不高,而且QPS较低的企业级内部系统之间的数据交换的场景,同时XML又具有语言无关性,所以还 ...

  4. 利用.NET的XML序列化解决系统配置问题

    作者:未知  请作者速与本人联系  出自: http://blog.csdn.net/ycl111/ 在Web系统开发中,我们经常需要读取和设置一些系统配置项,常见的例如数据库连接字符串.上传路径等等 ...

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

    这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对 ...

  6. Atitit.json xml 序列化循环引用解决方案json

    Atitit.json xml 序列化循环引用解决方案json 1. 循环引用1 2. 序列化循环引用解决方法1 2.1. 自定义序列化器1 2.2. 排除策略1 2.3. 设置序列化层次,一般3级别 ...

  7. Android之Xml序列化器生成xml文件

    ①先说一下将数据导成xml的优点: 1)XML文档的内容和结构完全分离 2)互操作性强 大多数纯文本的文件格式都具有这个优点.纯文本文件可以方便地穿越防火墙,在不同操作系统上的不同系统之间通信.而作为 ...

  8. c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)

    我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. using System; using System.Collections.Ge ...

  9. XML序列化以及新增节点XMLHelper

    介绍利用XMLHelper类实现XML的新建以及反序列化类的操作,XMLHelper见最底部 1.XML新增 document = XmlHelper.CreateXmlDocument(" ...

最新文章

  1. Linux下使用rsync最快速删除海量文件的方法
  2. 洛谷 P1055 ISBN号码【字符串+模拟】
  3. SpringBoot+MySQL+MyBatis+Shiro+AdminLTE
  4. 进程间通信 (IPC) 方法总结(三)
  5. comsol显示电场计算结果_在 COMSOL 中构建磁流体动力学多物理场模型
  6. MySQL-schema-sync 一款非常好用的 MySQL数据库同步工具
  7. php 开发百度聚合,百度地图api-百度地图API开发,使用MarkerClusterer进行点聚合的问题...
  8. 今晚直播丨一次特殊的 Oralce 硬解析性能问题的技术分享
  9. html 网络请求 json数据,写一个json格式API,http请求接收json数据
  10. 基于go的微服务搭建(七) - 服务发现和负载均衡
  11. 转 jquery使用技巧小结
  12. socket简介 - 获取简单网页内容
  13. 微信快捷回复技巧秘籍
  14. 电脑技巧:加装SSD固态硬盘注意事项,电脑速度超流畅
  15. python聚类系数_NetworkX 计算聚类系数的Python实现
  16. Error: not authorized on admin to execute command
  17. 本地颁发 SSL 证书,并开启 https 服务调试
  18. matlab 画qq图,科学网—[转载]R语言绘制QQ图 - 刘朋的博文
  19. 炫“库”行动-人大金仓有奖征文—金仓数据库入门体验
  20. Unity -TextMeshProUGUI 使用手册

热门文章

  1. L2-027 名人堂与代金券-PAT团体程序设计天梯赛GPLT
  2. 并发程序设计模式之Future模式
  3. 蓝桥杯 BASIC-25 基础练习 回形取数
  4. Confluence 6 修改日志文件的大小数量和级别
  5. Python 的lambda表达式的一些小细节
  6. Python学习笔记-Tuple
  7. php复制目录及文件
  8. Assembly Manifest 通俗简易手册
  9. c#类中字段和方法中变量的声明问题
  10. P1350 车的放置