XStream生成和解析xml的利器

最近在看开源中国的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)的区别在于性能.
自动侦查注解将缓存所有类的类型.

案例分析:

  • 同一标签下多个同名元素;
  • 同一标签下循环多个对象;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,999评论 6 342
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,323评论 9 118
  • Objective-C中可变参数的API很多,如: 像以上方法中的最后一个参数, ...如何实现实现呢?如下: 调...
    WonderChang阅读 1,444评论 0 1
  • 人生百味,五味最常在,酸甜苦辣咸是舌尖上最直接的体验。五味不断的丰富着人生,随着在时间长河中的积淀,五味慢慢趋向于...
    绿里是我阅读 390评论 0 0