序列化之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 JavaScript 数据格式
XML 相关技术
XML 相关技术
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
237 1
|
XML JavaScript Java
【JAVA XML 探秘】DOM、SAX、StAX:揭秘 Java 中 XML 解析技术的终极指南!
【8月更文挑战第25天】本文详细探讨了Java中三种主流的XML解析技术:DOM、SAX与StAX。DOM将XML文档转换为树状结构,便于全方位访问和修改;SAX采取事件驱动模式,适用于大型文件的顺序处理;StAX则兼具DOM和SAX的优点,支持流式处理和随机访问。文中提供了每种技术的示例代码,帮助读者理解如何在实际项目中应用这些解析方法。
719 1
|
XML Java 数据格式
必知的技术知识:java基础73dom4j修改xml里面的内容(网页知识)
必知的技术知识:java基础73dom4j修改xml里面的内容(网页知识)
172 1
|
JSON 缓存 NoSQL
Redis 在线查看序列化对象技术详解
Redis 在线查看序列化对象技术详解
340 3
|
C# 前端开发 UED
WPF数据验证实战:内置控件与自定义规则,带你玩转前端数据验证,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,数据验证是确保输入正确性的关键环节。前端验证能及时发现错误,提升用户体验和程序可靠性。本文对比了几种常用的WPF数据验证方法,并通过示例展示了如何使用内置验证控件(如`TextBox`)及自定义验证规则实现有效验证。内置控件结合`Validation`类可快速实现简单验证;自定义规则则提供了更灵活的复杂逻辑支持。希望本文能帮助开发者更好地进行WPF数据验证。
554 0
|
XML 网络协议 Java
XML Web 服务技术解析:WSDL 与 SOAP 原理、应用案例一览
XML Web服务是基于WSDL、SOAP、RDF和RSS等标准的网络应用程序组件技术。WSDL描述服务接口和消息格式,SOAP用于结构化信息交换,RDF描述网络资源,RSS则用于发布网站更新。Web服务特点是自包含、自描述,基于开放协议,可重用且能连接现有软件。WSDL文档包含`types`、`message`、`portType`和`binding`元素,定义服务操作和协议。SOAP协议规定消息格式,通过HTTP等传输。
771 1
|
XML Java 数据库连接
技术笔记:Maven的pom.xml(坐标的gav、依赖的scope)
技术笔记:Maven的pom.xml(坐标的gav、依赖的scope)
819 0
|
安全 Java 开发者
技术心得:反序列化Gadget学习篇五CommonCollections3
技术心得:反序列化Gadget学习篇五CommonCollections3
|
XML 数据格式
程序技术好文:格式化xml
程序技术好文:格式化xml
235 0