Thoughtworks XStream介绍
Xsteam Intro
XStream是thoughtworks开发的开源产品,采用的是xpp来进行xml和对象之间的转换。它不需要schema或其他的mapping文件就可以进行java对象和xml文件之间的转换,API调用起来非常方便,并且扩展功能强大。Offical site: http://xstream.codehaus.org/index.html
官方介绍:XStream is a simple library to serialize objects to XML and back again.
Feature list:
Ø Ease of use. A high level facade is supplied that simplifies common use cases.
Ø No mappings required. Most objects can be serialized without need for specifying mappings.
Ø Performance. Speed and low memory footprint are a crucial part of the design, making it suitable for large object graphs or systems with high message throughput.
Ø Clean XML. No information is duplicated that can be obtained via reflection. This results in XML that is easier to read for humans and more compact than native Java serialization.
Ø Requires no modifications to objects. Serializes internal fields, including private and final. Supports non-public and inner classes. Classes are not required to have default constructor.
Ø Full object graph support. Duplicate references encountered in the object-model will be maintained. Supports circular references.
Ø Integrates with other XML APIs. By implementing an interface, XStream can serialize directly to/from any tree structure (not just XML).
Ø Customizable conversion strategies. Strategies can be registered allowing customization of how particular types are represented as XML.
Ø Error messages. When an exception occurs due to malformed XML, detailed diagnostics are provided to help isolate and fix the problem.
Ø Alternative output format. The modular design allows other output formats. XStream ships currently with JSON support and morphing.
Note: 在配合JDK1.4或者1.3版本使用时,由于Xstream会任意根据Class实例化对象,所以会存在一些于老JVM安全框架上的冲突。
Demo to use:
首先只要编写一个POJO对象,而且这个对象甚至不需要getter/setter方法。同事对象的访问描述符是public还是private, Xstream并不关心。
Public class Demo{private String strField;private int intFieldprivate double doubleField;//constructor or methods }
接下来,构造一个XStream实例(此类利用了Façade设计模式,所有的方法都是for common use),传递字定义的POJO class对象给XStream,之后使用该实例的toXML和fromXML就可以自由转换Java Object和XML String了。
XStream xstream = new XStream(); xstream.alias("demo",Demo.class);Demo instance = new Demo(); instance.setStringField("abc"); instance.setIntField(123); instance.setDoubleField(3.14);String xml = xstream.toXML(instance); Demo fake = (Demo)xtream.fromXML(xml);
Thoughtworks XStream介绍相关推荐
- comsat java_java-com.thoughtworks.xstream.converters.ConversionExce...
[EDITED] 我正在处理的项目是Java J2EE中的3个文件夹项目,带有servlet和Hibernate以实现持久性.结构如下:-管理员->具有bean和HTML / CSS的主程序-J ...
- com.thoughtworks.xstream.converters.reflection.ReflectionConverter,用XSTream将xml转换为Java对象
将XML文件转换为object对象 XML包含:有对custs下标签含有: Java对象: @XStreamAlias("bcc:CustProperty") private Li ...
- XStream介绍与使用
简介 XStream是Java类库,用来将对象序列化成XML (JSON)或反序列化为对象.XStream是自由软件,可以在BSD许可证的许可下分发. XStream在运行时使用Java反射机制对要进 ...
- xstream异常com.thoughtworks.xstream.security.ForbiddenClassException
最近项目使用到webservice调用厂商的接口,遇到的需要解析错误信息的需求,于是对于错误信息的解析使用比较暴力方式:使用XStream直接手动解析错误消息到对象. 在解析的过程中遇到了com.th ...
- 项目将com.thoughtworks.xstream升级到1.4.18遇到的问题:com.thoughtworks.xstream.security.ForbiddenClassException
项目开发需求将xstream从1.4.17升级到1.4.18,升级后遇到了序列化问题,描述如下: om.thoughtworks.xstream.security.ForbiddenClassExce ...
- java 使用 com.thoughtworks.xstream.XStream 将map转为xml
public static void map2xml(Map<String, String> map) throws DocumentException, IOException {XSt ...
- Java对象表示方式2:XStream实现对对象的XML化
前言 上一篇文章讲到了使用Java原生的序列化的方式来表示一个对象.总结一下这种对象表示方式的优缺点: 1.纯粹的Java环境下这种方式可以很好地工作,因为它是Java自带的,也不需要第三方的Jar包 ...
- android 中XML和对象转换利器Xstream的使用
XStream框架: 虽说pull dom dom4j等优秀的xml解析工具使用非常广泛,但对于复杂庞大的数据交互来说,使用它们无疑让你倍加痛苦,你可能大部分精力都放在无聊繁琐的解析和拼装上,如果接口 ...
- JAVA Bean和XML之间的相互转换 - XStream简单入门
JAVA Bean和XML之间的相互转换 - XStream简单入门 背景介绍 XStream的简介 注解简介 应用实例 背景介绍 我们在工作中经常 遇到文件解析为数据或者数据转化为xml文件的情况, ...
最新文章
- 我竟然混进了Python高级圈子!
- 1.3 循环神经网络模型-深度学习第五课《序列模型》-Stanford吴恩达教授
- ASP.NET MVC Model绑定(二)
- 隐私计算--差分隐私
- C51 汇编指令英文全称
- 电脑睡眠快捷键_电脑快速进入睡眠的快捷键是什么?
- android 获取相机方向,android – 从相机捕捉图像,导致炸毁方向
- wap base.inc.php,MetInfo database.inc.php配置
- 小米激荡十年:雷军的进与退
- 计算机科学概论读书报告,计算机科学导论读书笔记01:绪论
- python 图像倾斜校正_通过OpenCV和Python进行文本倾斜校正
- 三菱GXWorks2 多CPU参数设置
- 按键精灵---大漠完美注册
- 阿里巴巴牵手福特 共同打造智联网汽车
- 区块链的出现是否能够挽救岌岌可危的微商?小心那些伪营销精英
- win10鼠标右键问题,导致桌面刷新重启,资源管理器explorer重启,文件夹闪退,应用管理员模式无法运行等等
- Macbook Pro上运行windows to go
- 今日份安利:手机上怎么去图片水印
- [记录][续爬虫]模拟京东登录并且抢购物券
- Typora测试版过期无法正常使用
热门文章
- 浅谈微博App在网站推广中的应用
- 密评是什么?密评评分具体是怎么打分的?安当加密
- frp点对点udp方式内网穿透ssh,不走服务器流量
- 2022年乡村医生考试复习题及答案
- 《Saladict》谷歌!有道!我全都要! 聚合词典, 并行翻译
- 国外设计公司H5网站模板
- 计算机丢失sspicli,MS16-047:SAM 和 LSAD 远程协议安全更新程序说明:2016 年 4 月 12 日...
- postgres内存上下文
- Algo_网络流,最大流最小割总结, 残留网络性质,知识点总结Tips
- 从GPT到chatGPT(一):GPT1