博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XStream的使用
阅读量:5164 次
发布时间:2019-06-13

本文共 3697 字,大约阅读时间需要 12 分钟。

一:功能

  可以将JavaBean转换(序列化)成XMl

二:依赖jar包

  xstream.jar

  xpp3_min.jar(xml pull parser)xml解析器

三:使用步骤

  XStream xstream = new XStream();

  String xmlStream = xstream.toXML(JavaBean);

四:使用细节

  别名:把对应的元素名改了,因为生成的元素名会包含整个JavaBean的全路径

//        指定别名        xStream.alias("china",List.class);        xStream.alias("province",Province.class);        xStream.alias("city",City.class);

  使用为属性,默认类的成员,生成的是子元素,我们希望将它改为属性,如name

//        把Province类型的name属性,生成
元素的属性 xStream.useAttributeFor(Province.class,"name");

  去除collection类型的成员名,只是需要collection的内容,不希望collection本身再生成一个子节点去包含它的内容

xStream.addImplicitCollection(Province.class,"citys");

  去除类的指定的成员名,JavaBean可能包含我们不需要在XML中使用的属性,所以需要去除多有的成员

xStream.omitField(City.class,"description");

五:源码

JavaBean

package xstream;/** * Created by YuWenHui on 2017/4/24 0024. */public class City {    private String name;    private String description;    public City(String name, String description) {        this.name = name;        this.description = description;    }    public City() {        super();    }    public String getDescription() {        return description;    }    public void setDescription(String description) {        this.description = description;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}
package xstream;import java.util.ArrayList;import java.util.List;/** * Created by YuWenHui on 2017/4/24 0024. */public class Province {    private String name;    List
citys = new ArrayList
(); public String getName() { return name; } public void setName(String name) { this.name = name; } public List
getCitys() { return citys; } public void setCitys(List
citys) { this.citys = citys; } public void addCity(City city){ citys.add(city); }}

dome

package xstream;import com.thoughtworks.xstream.XStream;import java.util.ArrayList;import java.util.List;/** * Created by YuWenHui on 2017/4/24 0024. */public class Dome {    // 返回javabean集合    public List
getProinvceList() { Province p1 = new Province(); p1.setName("北京"); p1.addCity(new City("东城区", "DongChengQu")); p1.addCity(new City("昌平区", "ChangPingQu")); Province p2 = new Province(); p2.setName("江西"); p2.addCity(new City("上饶", "ShangRao")); p2.addCity(new City("宜春", "YiChun")); List
provinceList = new ArrayList
(); provinceList.add(p1); provinceList.add(p2); return provinceList; } @org.junit.Test public void test(){ List
provinceList = getProinvceList(); XStream xStream = new XStream();// 指定别名 xStream.alias("china",List.class); xStream.alias("province",Province.class); xStream.alias("city",City.class);// 把Province类型的name属性,生成
元素的属性 xStream.useAttributeFor(Province.class,"name");// 去除collection类型的成员名,只是需要collection的内容,不希望collection本身再生成一个子节点去包含它的内容 xStream.addImplicitCollection(Province.class,"citys");// 去除类的指定的成员名,JavaBean可能包含我们不需要在XML中使用的属性,所以需要去除多有的成员 xStream.omitField(City.class,"description"); String s = xStream.toXML(provinceList); System.out.println(s); }}

 

六:结果

<china>

<province name="北京">
<city>
<name>东城区</name>
</city>
<city>
<name>昌平区</name>
</city>
</province>
<province name="江西">
<city>
<name>上饶</name>
</city>
<city>
<name>宜春</name>
</city>
</province>
</china>

转载于:https://www.cnblogs.com/yuwenhui/p/6758628.html

你可能感兴趣的文章
Hive(7)-基本查询语句
查看>>
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
判断字符串是否为空的注意事项
查看>>
布兰诗歌
查看>>
js编码
查看>>
Pycharm Error loading package list:Status: 403错误解决方法
查看>>
steps/train_sat.sh
查看>>
转:Linux设备树(Device Tree)机制
查看>>
iOS 组件化
查看>>
(转)Tomcat 8 安装和配置、优化
查看>>
(转)Linxu磁盘体系知识介绍及磁盘介绍
查看>>
tkinter布局
查看>>
命令ord
查看>>
Sharepoint 2013搜索服务配置总结(实战)
查看>>
博客盈利请先考虑这七点
查看>>
使用 XMLBeans 进行编程
查看>>
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>