XStream的例子
写个小例子,方便以后复习:
1 package com.demo;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.junit.Test;
7
8 import com.thoughtworks.xstream.XStream;
9
10 public class XStreamDemo {
11 public List<Province> getProvince(){
12 Province bj = new Province();
13 bj.setName("北京");
14 List<City> bjCitys = new ArrayList<City>();
15 City dcq = new City("东城区","dongchengqu");
16 City xcq = new City("西城区","xichengqu");
17 City bcq = new City("北城区","beichengqu");
18 bjCitys.add(dcq);
19 bjCitys.add(xcq);
20 bjCitys.add(bcq);
21 bj.setCitys(bjCitys);
22
23
24 Province gd = new Province();
25 bj.setName("广东");
26 List<City> gdCitys = new ArrayList<City>();
27 City gzs = new City("广州市","guangzhoushi");
28 City szs = new City("深圳市","shenzhenshi");
29 City czs = new City("潮州市","chaozhoushi");
30 gdCitys.add(gzs);
31 gdCitys.add(szs);
32 gdCitys.add(czs);
33 gd.setCitys(gdCitys);
34
35 List<Province> provinces = new ArrayList<Province>();
36 provinces.add(bj);
37 provinces.add(gd);
38 return provinces;
39 }
40 /**
41 * 用xstream把JavaBean转换成xml字符串
42 */
43 @Test
44 public void fun1(){
45 XStream xs = new XStream();
46 String s = xs.toXML(getProvince());
47 System.out.println(s);
48 }
49
50
51 /**
52 * 使用xstream的alias(String name,Class object);方法更改类的名称
53 */
54 @Test
55 public void fun2(){
56 XStream xs = new XStream();
57 xs.alias("china", List.class);
58 xs.alias("province", Province.class);
59 xs.alias("city", City.class);
60 String s = xs.toXML(getProvince());
61 System.out.println(s);
62 }
63
64 /**
65 * 把子元素变为元素属性
66 */
67 @Test
68 public void fun3(){
69 XStream xs = new XStream();
70 //更改别名
71 xs.alias("china", List.class);
72 xs.alias("province", Province.class);
73 xs.alias("city", City.class);
74 //把子元素变为元素属性
75 xs.useAttributeFor(Province.class, "name");
76
77 String s = xs.toXML(getProvince());
78 System.out.println(s);
79 }
80 /**
81 * 去除集合属性对应元素
82 */
83 @Test
84 public void fun4(){
85 XStream xs = new XStream();
86 //更改别名
87 xs.alias("china", List.class);
88 xs.alias("province", Province.class);
89 xs.alias("city", City.class);
90 //把子元素变为元素属性
91 xs.useAttributeFor(Province.class, "name");
92 // 去除集合属性对应元素
93 xs.addImplicitCollection(Province.class, "citys");
94 String s = xs.toXML(getProvince());
95 System.out.println(s);
96 }
97 /**
98 * 去除集合属性对应元素
99 */
100 @Test
101 public void fun5(){
102 XStream xs = new XStream();
103 //更改别名
104 xs.alias("china", List.class);
105 xs.alias("province", Province.class);
106 xs.alias("city", City.class);
107 //把子元素变为元素属性
108 xs.useAttributeFor(Province.class, "name");
109 // 去除集合属性对应元素
110 xs.addImplicitCollection(Province.class, "citys");
111 //让类成员不生成对应的xml元素
112 xs.omitField(City.class, "explain");
113 String s = xs.toXML(getProvince());
114 System.out.println(s);
115 }
116
117 }
----其它涉及的类-----
Provice.class
1 import java.util.List;
2
3 public class Province {
4 private String name;
5 private List<City> citys;
6 public Province() {
7 super();
8 // TODO Auto-generated constructor stub
9 }
10 public Province(String name, List<City> citys) {
11 super();
12 this.name = name;
13 this.citys = citys;
14 }
15 public String getName() {
16 return name;
17 }
18 public void setName(String name) {
19 this.name = name;
20 }
21 public List<City> getCitys() {
22 return citys;
23 }
24 public void setCitys(List<City> citys) {
25 this.citys = citys;
26 }
27
28
29 }
City.class
1 public class City {
2 private String name;
3 private String explain;
4 public City() {
5 super();
6 // TODO Auto-generated constructor stub
7 }
8 public City(String name, String explain) {
9 super();
10 this.name = name;
11 this.explain = explain;
12 }
13 public String getName() {
14 return name;
15 }
16 public void setName(String name) {
17 this.name = name;
18 }
19 public String getExplain() {
20 return explain;
21 }
22 public void setExplain(String explain) {
23 this.explain = explain;
24 }
25
26 }
XStream的例子的更多相关文章
- java序列化/反序列化之xstream、protobuf、protostuff 的比较与使用例子
目录 背景 测试 环境 工具 说明 结果 结论 xstream简单教程 准备 代码 protobuf简单教程 快速入门 下载.exe编译器 编写.proto文件 利用编译器编译.proto文件生成ja ...
- Xstream学习资料
java中有关xml操作的,我们项目中首推Xstream.至于原因不说了.跟着大众的脚步走应该没错的.有关Xstream的文档如下. 官方文档 XStream完美转换XML.JSON XStream实 ...
- XStream简单入门
简单的讲,XStream 涉及的就五个知识点:详情参考 官网 混叠,注解,转换器,对象流和操作json! 下面就用几个简单的例子来实现上述五个知识点! 基本步骤: 第1步:创建XStream对象. 通 ...
- (转载)XML解析之-XStream解析
转载来源:http://hwy584624785.iteye.com/blog/1168680 本例使用XStream生成一个xml文件,再发序列化xml文件内容. XStream是一个简单的类库,可 ...
- XStream 快速转换xml
项目地址:http://xstream.codehaus.org/tutorial.html (以下来源于官网) 1.Create classes to be serialized(初始化类) pub ...
- XStream使用详解
1.Xstream介绍 (1)Xstream介绍 Xstream是一种OXMapping 技术,是用来处理XML文件序列化的框架,在将JavaBean序列化,或将XML文件反序列化的时候,不需 ...
- java操作xml的一个小例子
最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...
- JAVA bean与XML互转的利器---XStream
最近在项目中遇到了JAVA bean 和XML互转的需求, 本来准备循规蹈矩使用dom4j忽然想起来之前曾接触过的XStream, 一番研究豁然开朗,利器啊利器, 下来就XStream的一些用法与大家 ...
- XML 处理利器 : XStream
XStream 概述 XStream 是一套简洁易用的开发类库,用于将Java对象序列化为XML或者将XML反序列化为JAVA对象,是JAVA对象和XML之间一个双向转换器. 举例 ...
随机推荐
- Ubuntu下PHP的扩展
Ubuntu版本:14.04 1. 下载php-5.5.10.tar.bz2,并解压. 2. 终端进入解压后的目录php-5.5.10,运行configure.(输入命令./configure) 3 ...
- QCopChannel的用法
QT提供了很多的进程间通讯的方法,例如共享内存,QProcess等等.但有一种方法是嵌入式端所独有的,那就是Qt Communications Protocol(QCOP)QT通讯协议,这种方法只能用 ...
- $.ajax()方法参数详解
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...
- 爆料喽!!!开源日志库Logger的使用秘籍
日志对于开发来说是非常重要的,不管是调试数据查看.bug问题追踪定位.数据信息收集统计,日常工作运行维护等等,都大量的使用到.今天介绍著名开源日志库Logger的使用,库的地址:https://git ...
- shell 和awk性能对比
time for ((i=0;i<10000;i++)) do ((sum+=i)); done real 0m0.086suser 0m0.079ssys 0m0.007s ...
- Oracle 给已创建的表增加自增长列
对于已经创建的表,在特殊需求下,需要增加一个自增长列步骤: --1. 增加 自增长列 ); --2. 程序方式更新设置 IdNum 列 值 --3.查询最大 ) From Limsbusinessen ...
- 【转载】Ubuntu下SVN安装和配置
一.SVN安装 1.安装包 1.$ sudo apt-get install subversion 2.创建项目目录 $ sudo mkdir /home/xiaozhe/svn $ cd /home ...
- [python]抽象方法
抽象方法 我的理解抽象方法就是:父类的一个方法,继承的所有子类都必须要实现这个方法,否则报错. 举例说明 class Base(object): def _method(self): raise No ...
- tips null和undefined的区别
tips null和undefined的区别 1.undefined类型 undefined类型只有一个值,即特殊的undefined.在使用var声明变量但未对其加以初始化时,这个变量的值就是und ...
- WebApi 集成 Swagger
1. Swagger(俗称:丝袜哥)是什么东西? Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同 ...