`

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使用说明 #### 一、Xstream简介 Xstream是一种对象XML映射(Object/XML Mapping)技术,主要用于处理XML文件序列化的工作。通过Xstream可以轻松地将Java对象序列化为XML文档,或者将XML文档反序列化为...

    XStream使用文档 wd.docx

    以下是一个简单的示例,展示了如何创建 `XStream` 实例并使用它来将 `Person` 对象转换为 XML: ```java import com.thoughtworks.xstream.XStream; public class Main { public static void main(String[] args)...

    xstream使用案例

    2. **初始化 XStream**: 创建 `XStream` 实例,通常建议使用 `XStream(xmlDriver)` 初始化,其中 `xmlDriver` 可以是 `JDOMDriver` 或 `DomDriver` 等。 3. **注册转换器**: 如果需要处理自定义类型,可能需要注册...

    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使用小记》 Xstream是一款Java库,它提供了简单且强大的方式来序列化和反序列化Java对象到XML,以及从XML回转换为Java对象。在本文中,我们将深入探讨Xstream的核心概念、使用场景以及如何通过实例进行...

    使用XStream操作xml教程

    本教程将深入探讨如何使用XStream进行XML操作。 一、XStream简介 XStream是一个开源库,由Johannes Link开发,它允许开发者以一种声明性方式将Java对象序列化为XML,然后又可以从XML还原回对象。XStream的核心理念...

    XStream使用例子

    在本文中,我们将深入探讨XStream的使用方法,包括它的核心概念、配置、安全性和性能优化。 **1. 序列化到XML** XStream的核心功能是能够将Java对象转换成XML。首先,我们需要导入XStream库,并创建一个XStream...

    XStream使用文档

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

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

    本篇将详细讲解XML的解析方式及其在Java中的应用,特别是如何使用XStream库进行JavaBean与XML之间的互转。 1. **XML解析方式** - DOM解析:Document Object Model,它一次性加载整个XML文档到内存,形成一棵树形...

    XStream Java下的使用

    **XStream Java下的使用** XStream 是一个Java库,它能够将Java对象转换为XML,同时也能将XML数据转换回相应的Java对象。这个强大的库在处理XML序列化和反序列化时提供了简单而直观的API,尤其适用于Android开发中...

    XStream使用文档.docx

    XStream使用文档 XStream是一个轻量级的、简单易用的开放源代码Java库,用于将Java对象序列化为XML或者再转换回来。XStream还能将Java对象转成其它格式,比如JSon。官方上的XStream特点包括使用简单、不需要配置...

    最齐全的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 多集合生成xml

    在这个场景中,"使用XStream多集合生成xml"是一个关键的技术点,它涉及到如何将多个集合类的对象转换成XML文档。以下是对这一主题的详细说明。 首先,我们需要了解XStream的基本用法。XStream的核心是`XStream`类,...

    xstream-1.4.2.jar

    XStream-1.4.2可能是一个稳定且广泛使用的版本,对于那些需要处理XML与Java对象之间转换的项目来说,它是一个可靠的选择。 标签"xstream.jar"明确了这是一个Java档案(JAR)文件,通常包含Java类、资源和其他相关...

    xstream-1.4.15.jar

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

    xstream解析依赖包

    本文将深入探讨XStream的使用以及其依赖包xpp3_min-1.1.4c.jar和xstream-1.3.1.jar的相关知识点。 首先,我们来了解核心组件xstream-1.3.1.jar。XStream的核心功能是提供了一种直观的方式来将Java对象转换为XML,并...

    xstream相关的jar包

    XStream使用DOM4J作为其默认的DOM提供商,用于解析和构建XML文档。 3. **xpp3_min-1.1.4c.jar**:这是一个小型的XML Pull解析器(XPP3),用于在内存效率和性能方面提供轻量级的XML解析。XStream可以使用XPP3来解析...

    com.thoughtworks.xstream.XStream操作XML和java对象的一些用法

    在Java开发中,数据交换和持久化经常涉及到XML与Java对象之间的转换。XStream库提供了一个简单、直观的方式来实现这种转换,...通过熟练掌握XStream的使用,开发者可以更好地在Java应用中利用XML进行数据交换和存储。

    xstream最新版 - xstream-1.4.18.jar

    xstream最新版jar包

    xStream xml to bean

    在`beanToXml()` 方法中,同样需要初始化xStream实例,然后使用`toXML()` 方法将Bean对象转换为XML字符串: ```java public String beanToXml(YourBeanClass bean) { XStream xstream = new XStream(new DomDriver...

Global site tag (gtag.js) - Google Analytics