美文网首页0和1的世界
XStream生成和解析xml的利器

XStream生成和解析xml的利器

作者: ostea | 来源:发表于2016-02-03 11:11 被阅读583次

最近在看开源中国的app源码,里面用到了一个我之前没用到过的第三方库XStream,借此写下自己的使用心得。

XStream简介

  • 使用限制:
    JDK版本不能小于1.5. 虽然预处理注解是安全的,但自动侦查注解可能发生竞争条件.
  • 特点:
    简化的API; 无映射文件; 高性能,低内存占用; 整洁的XML; 不需要修改对象;支持内部私有字段,不需要setter/getter方法,final字段;非公有类,内部类;类不需要默认构造器,完全对象图支持.维护对象引用计数,循环引用. i 提供序列化接口; 自定义转换类型策略; 详细的错误诊断; 快速输出格式;当前支持 JSON 和 morphing.
    使用场景 Transport 转换 Persistence 持久化对象 Configuration 配置 Unit Tests 单元测
    隐式集合 当我们使用集合类时不想显示集合,只显示里面的元素即可.
    使用隐式集合前: <list> <element /> <element /> <list>
    使用隐式集合: xstream.addImplicitCollection(Person.class, "list");
    使用隐式集合后: <element /> <element />

Xstream注解常用知识:

   @XStreamAlias("message") 别名注解  作用目标: 类,字段 '
   @XStreamImplicit 隐式集合  @XStreamImplicit(itemFieldName="part")  作用目标: 集合字段  
   @XStreamConverter(SingleValueCalendarConverter.class) 注入转换器  作用目标: 对象  
   @XStreamAsAttribute 转换成属性  作用目标: 字段  
   @XStreamOmitField 忽略字段  作用目标: 字段 

Auto-detect Annotations 自动侦查注解 xstream.autodetectAnnotations(true);
自动侦查注解与XStream.processAnnotations(Class[] cls)的区别在于性能.
自动侦查注解将缓存所有类的类型.

案例分析:

  • 同一标签下多个同名元素;
  • 同一标签下循环多个对象;

相关文章

网友评论

    本文标题:XStream生成和解析xml的利器

    本文链接:https://www.haomeiwen.com/subject/gmtekttx.html