XStream 学习和使用

1、XStream 简介

一个XML的序列化工具,可以实现 Java对象序列化成XML,或者将XML反序列为Java对象。

Example
 XStream xstream = new XStream();
 String xml = xstream.toXML(myObject); // serialize to XML
 Object myObject2 = xstream.fromXML(xml); // deserialize from XML

API地址: XStream (XStream Core 1.4.19 API)

2、XStream 的核心jar包

核心jar包:xstream-1.4.19.jar

        <dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
            <version>1.4.19</version>
        </dependency>

3、XStream 的常用注解

注解说明作用
@XStreamAlias

别名

对类、属性等设置别名
@XStreamAsAttribute转为属性将字段转为属性
@XStreamOmitField忽略的字段忽略XML中的字段
@XstreamImplicit隐式集合集合字段
@XstreamConverter注入转换器

对象

 

@XStreamAlias("module") // 别名
public class ModuleVo {


    @XStreamAsAttribute // 表示字段的一个属性,加这个注解,属性字段会在标签内而不是另起一个标签
    @XStreamAlias("id") // 别名,如果Java内的属性名称定义的和XML里面不一致,可以用别名的方法
    private String moduleid; 
    @XStreamAsAttribute
    private String name;
    @XStreamAsAttribute
    private String order;

    @XStreamImplicit(itemFieldName = "item") // 集合,ItemRegVo类似于ModuleVo这种,里面可以定义自己的属性
    private List<ItemRegVo> itemRegVoList = new ArrayList<>();

    ……
}


例子:
		<module id="111" name="name1" order="1">
			<item id="item1" name=""/>	
            <item id="item2" name=""/>	
            <item id="item3" name=""/>	
		</module>

4、注解及Xstream的使用

try {
    fileInputStream = new FileInputStream(file);
    XStream xStream = new XStream(new DomDriver());

    //清除默认配置,然后进行自定义白名单
    xStream.addPermission(NoTypePermission.NONE);
    //添加白名单基础类
    xStream.addPermission(new ExplicitTypePermission(new Class<?>[]{dockerVo.getClass()}));

    // 要启用XStream提供的注解功能,需要在执行对象和XML转换之前注册标注了XStream注解的Java对象
    xStream.processAnnotations(dockerVo.getClass());

    xStream.fromXML(fileInputStream, dockerVo);

    fileInputStream.close();

} catch (IOException e) {
    e.printStackTrace();
}

参考文档

XStream 简介_veejaLiu的博客-CSDN博客_xstream

Spring OXM-XStream注解_小小工匠的技术博客_51CTO博客

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值