`

xstream初步使用

 
阅读更多

 

目前采用XSTREAM开源组件做xml的序列化和反序列化,尝试了下,做了个DEMO,以备查阅

 

@XStreamAlias("User")
public class User
{
    @XStreamAlias("Id")
    public String id;
    
    @XStreamAlias("DisplayName")
    public String displayName;
    
    public User()
    {
        super();
    }

    public User(String id, String displayName)
    {
        super();
        this.id = id;
        this.displayName = displayName;
    }
}
 
@XStreamAlias("Content")
public class Content
{
    @XStreamAlias("Id")
    public String id;
    
    @XStreamAlias("Name")
    public String name;
    
    @XStreamAlias("Value")
    public String value;
    
    public Content(String id, String name, String value)
    {
        super();
        this.id = id;
        this.name = name;
        this.value = value;
    }
    
}
 

 

 

@XStreamAlias("TestXstream")
public class TestXstream
{
    // 标记为节点属性
    @XStreamAsAttribute
    protected String xmlns = "http://s3.amazonaws.com/doc/2006-03-01";
    
    // 忽略该属性
    @XStreamOmitField
    public String ignoreProperty;
    
    // 序列化别名
    @XStreamAlias("Name222")
    public String name;
    
    @XStreamAlias("Type")
    public String type;
    
    public Map<String, String> map = new HashMap<String, String>();
    
    @XStreamAlias("Users")
    public List<User> users = new ArrayList<User>();
    
    public List<Content> contents = new ArrayList<Content>();
    
    public TestXstream()
    {
        super();
    }
    
    public TestXstream(String name, String type)
    {
        super();
        this.name = name;
        this.type = type;
    }

    /**
     * 使用DEMO
     * 
     * @param args
     */
    public static void main(String[] args)
    {
        TestXstream tx = new TestXstream("我带中文,yes", "我也特殊字符哈<f>");
        tx.contents.add(new Content("1", "name1", "value1"));
        tx.contents.add(new Content("2", "name2", "value2"));
        tx.users.add(new User("1", "zhansgdfasdf"));
        tx.users.add(new User("2", "asdfasdfasdf"));
        tx.map.put("1", "234234");
        tx.map.put("2", "234234");
        
        // 对象序列化
        XStream xstream = new XStream(new DomDriver());
        xstream.autodetectAnnotations(true);
        // 不序列化contents属性,但是序列化下面的子对象
        xstream.addImplicitCollection(TestXstream.class, "contents");
        // 格式化输出
        System.out.println(xstream.toXML(tx));
        // 无格式输出
        Writer writer = new StringWriter();
        xstream.marshal(tx, new CompactWriter(writer));
        String seri = writer.toString();
        System.out.println(seri);
        // 反序列化
        Object object = xstream.fromXML(seri, new TestXstream());
        System.out.println(object);
    }
    
}
分享到:
评论
3 楼 xinglianxlxl 2017-11-13  
对我有用,非常感谢
2 楼 908311595 2016-09-01  
多谢楼主分享
1 楼 zhuyouyong 2012-10-17  
 

相关推荐

    XStream使用例子

    XStream使用例子,如何序列化、反序列化到XML和JSON格式。

    Xstream使用说明

    Xstream使用说明 各种使用案例

    XStream Java下的使用

    XStream Java Android下的使用.有读写相关的测试.

    XStream开发使用的包

    XStream开发时使用的包,官网原句:XStream is a simple library to serialize objects to XML and back again. 要使对象转化成xml,使用: XStream xstream = new XStream(); String str = xtream.toXML(Object); ...

    XStream使用文档

    该文件是XStream官方使用文档,有效帮助程序员解决xml技术问题

    xstream使用案例

    xstream xml java对象转换,直接导入使用即可看到效果

    最齐全的xstream1.4.8.jar

    最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar ...

    xstream-1.4.15.jar

    XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...

    xstream最新版 - xstream-1.4.18.jar

    xstream最新版jar包

    xStream使用demo

    使用xstream来读取xml文件的demo,该demo中,使用了支付宝对账单返回的xml为列子来展示使用xstream的注解的方式读取xml,并且转成实体类.学习xstream或者对xstream有疑问的可以参考下..之所以使用支付宝账单返回的xml是...

    xstream-1.4.11-API文档-中文版.zip

    赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...

    XStream使用文档 wd.docx

    XStream使用文档

    使用XStream操作xml教程

    XStream是以个实现序列化数据和xml之间相互转换的类库,使用非常简单、方便

    XStream XML与Json转换

    XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。XStream可以序列化内部字段,包括私private和final字段,并且支持非公开类以及内部类。 在缺省情况下,XStream不...

    xstream-1.4.19.jar

    xstream-1.4.19.jar

    xStream xml to bean

    xStream xml to bean,使用xStream 互转 xml 、bean. 的一个工具类。

    解决XStream注解同名冲突

    多个类注解@XStreamAlias,value相同、且在集合上使用了@XStreamImplicit会出现异常: com.thoughtworks.xstream.converters.ConversionException: No field 'null' found in class '.....(注解的类路径)' ---- ...

    xstream-1.4.jar

    xstream jar包,java对象转xml以及xml转java对象,操作很简单。

    XStream使用文档.docx

    XStream使用文档.docx

    xml解析及使用XStream实现javaBean与xml之间的转换

    一个小demo展示xml的两种解析方式和四种解析方法,以及使用XStream进行javaBean与xml、json之间的转换

Global site tag (gtag.js) - Google Analytics