xstream

本文用于记录学习笔记

XStream是什么

XStream是一个将对象序列化为XML并返回的简单库。

使用XStream

  1. 需要的jar包:xstream-1.4.10.jar,xpp3_min-1.1.4c.jar(XML Pull Parser,一款速度很快的解析器)。
  2. 使用步骤:
  • XStream xs =new XStream();
  • xs.toXML(Object);
    将成员变量如下的两个类转变为XML的结果
    1
    2
    private String pName;
    private List<City> cList = new ArrayList<>();
1
2
private String cName;
private String description;

输出:
1
十分的难看,因此需要对其进行简化。

<1>.给类名取个别名。

xstream.alias(String name, Class type);

<2>.将类的属性变成XML元素的属性。

xstream.useAttributeFor(Class definedIn, String fieldName);

<3>.将集合类属性去掉,保留集合内的元素生成的XML元素。

xstream.addImplicitCollection(Class ownerType, String fieldName);

<4>.去除不想要的属性。

xstream.omitField(Class definedIn,String fieldName);

完整代码:

1
2
3
4
5
6
7
8
9
List<Province> pList = getProvinces();//得到省的集合
XStream xs = new XStream();
//给类名元素取别名
xs.alias("china", List.class);
xs.alias("province", Province.class);
xs.alias("city", City.class);
xs.useAttributeFor(Province.class, "pName");//将Province的属性pName变成province元素的属性
xs.addImplicitCollection(Province.class, "cList");//将Province类的cList属性去掉,保留集合中的元素生成的XML元素
xs.omitField(CIty.class, "description");

简化之后:
2