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

        
            com.thoughtworks.xstream
            xstream
            1.4.19
        

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 itemRegVoList = new ArrayList<>();

    ……
}


例子:
		
				
            	
            	
		

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博客

你可能感兴趣的:(Java基础,学习,大数据)