首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

xstream初始使用

2012-08-31 
xstream初步使用?目前采用XSTREAM开源组件做xml的序列化和反序列化,尝试了下,做了个DEMO,以备查阅?@XStrea

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);    }    }

热点排行