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介绍相关推荐

  1. comsat java_java-com.thoughtworks.xstream.converters.ConversionExce...

    [EDITED] 我正在处理的项目是Java J2EE中的3个文件夹项目,带有servlet和Hibernate以实现持久性.结构如下:-管理员->具有bean和HTML / CSS的主程序-J ...

  2. com.thoughtworks.xstream.converters.reflection.ReflectionConverter,用XSTream将xml转换为Java对象

    将XML文件转换为object对象 XML包含:有对custs下标签含有: Java对象: @XStreamAlias("bcc:CustProperty") private Li ...

  3. XStream介绍与使用

    简介 XStream是Java类库,用来将对象序列化成XML (JSON)或反序列化为对象.XStream是自由软件,可以在BSD许可证的许可下分发. XStream在运行时使用Java反射机制对要进 ...

  4. xstream异常com.thoughtworks.xstream.security.ForbiddenClassException

    最近项目使用到webservice调用厂商的接口,遇到的需要解析错误信息的需求,于是对于错误信息的解析使用比较暴力方式:使用XStream直接手动解析错误消息到对象. 在解析的过程中遇到了com.th ...

  5. 项目将com.thoughtworks.xstream升级到1.4.18遇到的问题:com.thoughtworks.xstream.security.ForbiddenClassException

    项目开发需求将xstream从1.4.17升级到1.4.18,升级后遇到了序列化问题,描述如下: om.thoughtworks.xstream.security.ForbiddenClassExce ...

  6. java 使用 com.thoughtworks.xstream.XStream 将map转为xml

    public static void map2xml(Map<String, String> map) throws DocumentException, IOException {XSt ...

  7. Java对象表示方式2:XStream实现对对象的XML化

    前言 上一篇文章讲到了使用Java原生的序列化的方式来表示一个对象.总结一下这种对象表示方式的优缺点: 1.纯粹的Java环境下这种方式可以很好地工作,因为它是Java自带的,也不需要第三方的Jar包 ...

  8. android 中XML和对象转换利器Xstream的使用

    XStream框架: 虽说pull dom dom4j等优秀的xml解析工具使用非常广泛,但对于复杂庞大的数据交互来说,使用它们无疑让你倍加痛苦,你可能大部分精力都放在无聊繁琐的解析和拼装上,如果接口 ...

  9. JAVA Bean和XML之间的相互转换 - XStream简单入门

    JAVA Bean和XML之间的相互转换 - XStream简单入门 背景介绍 XStream的简介 注解简介 应用实例 背景介绍 我们在工作中经常 遇到文件解析为数据或者数据转化为xml文件的情况, ...

最新文章

  1. 我竟然混进了Python高级圈子!
  2. 1.3 循环神经网络模型-深度学习第五课《序列模型》-Stanford吴恩达教授
  3. ASP.NET MVC Model绑定(二)
  4. 隐私计算--差分隐私
  5. C51 汇编指令英文全称
  6. 电脑睡眠快捷键_电脑快速进入睡眠的快捷键是什么?
  7. android 获取相机方向,android – 从相机捕捉图像,导致炸毁方向
  8. wap base.inc.php,MetInfo database.inc.php配置
  9. 小米激荡十年:雷军的进与退
  10. 计算机科学概论读书报告,计算机科学导论读书笔记01:绪论
  11. python 图像倾斜校正_通过OpenCV和Python进行文本倾斜校正
  12. 三菱GXWorks2 多CPU参数设置
  13. 按键精灵---大漠完美注册
  14. 阿里巴巴牵手福特 共同打造智联网汽车
  15. 区块链的出现是否能够挽救岌岌可危的微商?小心那些伪营销精英
  16. win10鼠标右键问题,导致桌面刷新重启,资源管理器explorer重启,文件夹闪退,应用管理员模式无法运行等等
  17. Macbook Pro上运行windows to go
  18. 今日份安利:手机上怎么去图片水印
  19. [记录][续爬虫]模拟京东登录并且抢购物券
  20. Typora测试版过期无法正常使用

热门文章

  1. 浅谈微博App在网站推广中的应用
  2. 密评是什么?密评评分具体是怎么打分的?安当加密
  3. frp点对点udp方式内网穿透ssh,不走服务器流量
  4. 2022年乡村医生考试复习题及答案
  5. 《Saladict》谷歌!有道!我全都要! 聚合词典, 并行翻译
  6. 国外设计公司H5网站模板
  7. 计算机丢失sspicli,MS16-047:SAM 和 LSAD 远程协议安全更新程序说明:2016 年 4 月 12 日...
  8. postgres内存上下文
  9. Algo_网络流,最大流最小割总结, 残留网络性质,知识点总结Tips
  10. 从GPT到chatGPT(一):GPT1