XStream-->别名;元素转属性;去除集合属性(剥皮);忽略不需要元素

--->清单:

City.java

Province.java

TestXStream.java

4个XStream方法的效果图



javabean-->City.java

 1 package xstream;
 2
 3 public class City {
 4     private String name;
 5     private String description;
 6
 7     public String getName() {
 8         return name;
 9     }
10     public void setName(String name) {
11         this.name = name;
12     }
13     public String getDescription() {
14         return description;
15     }
16     public void setDescription(String description) {
17         this.description = description;
18     }
19     public City(String name, String description) {
20         this.name = name;
21         this.description = description;
22     }
23 }


javabean-->Province.java

 1 package xstream;
 2
 3 import java.util.ArrayList;
 4 import java.util.List;
 5
 6 public class Province {
 7     private String name;
 8     private List<City> cities = new ArrayList<City>();
 9
10     public void addCity(City city){
11         cities.add(city);
12     }
13
14     public String getName() {
15         return name;
16     }
17     public void setName(String name) {
18         this.name = name;
19     }
20     public List<City> getCities() {
21         return cities;
22     }
23     public void setCities(List<City> cities) {
24         this.cities = cities;
25     }
26     public Province(String name, List<City> cities) {
27         super();
28         this.name = name;
29         this.cities = cities;
30     }
31
32     public Province() {}
33
34     public Province(String name) {
35         this.name = name;
36     }
37 }


测试类-->TestXStream.java

 1 package xstream;
 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 TestXStream {
11     public List<Province> getProvinceList(){
12         List<Province> provinceList = new ArrayList<Province>();
13
14         Province p1 = new Province("北京");
15         p1.addCity(new City("东城区","东城区"));
16         p1.addCity(new City("西城区","西城区"));
17
18         Province p2 = new Province("上海");
19         p2.addCity(new City("徐汇区","徐汇区"));
20         p2.addCity(new City("浦东新区","浦东新区"));
21
22         provinceList.add(p1);
23         provinceList.add(p2);
24
25         return provinceList;
26     }
27     //--->原生版
28     @Test
29     public void fun(){
30         List<Province> proList = getProvinceList();
31         XStream xStream = new XStream();
32         String xml = xStream.toXML(proList);
33         System.out.println(xml);
34     }
35
36     //--->修改
37     @Test
38     public void fun1(){
39         List<Province> proList = getProvinceList();
40         XStream xStream = new XStream();
41
42         //别名
43         xStream.alias("china", java.util.List.class);
44         xStream.alias("province", Province.class);
45         xStream.alias("city", City.class);
46
47         //把子元素变成父元素的属性
48         xStream.useAttributeFor(Province.class, "name");
49
50         //去掉容器,"剥皮"
51         xStream.addImplicitCollection(Province.class, "cities");
52
53         //忽略不需要的属性-xml的元素
54         xStream.omitField(City.class, "description");
55
56         String xml = xStream.toXML(proList);
57         System.out.println(xml);
58     }
59
60 }


-->4个XStream方法的效果图



--->别名



--->子元素转换成属性



--->去掉集合元素("剥皮")



--->忽略不需要的元素




XStream-->别名;元素转属性;去除集合属性(剥皮);忽略不需要元素

时间: 2024-12-20 22:11:06

XStream-->别名;元素转属性;去除集合属性(剥皮);忽略不需要元素的相关文章

Struts(二十一):类型转换与复杂属性、集合属性配合使用

背景: 本章节主要以复杂属性.集合属性类型转化为例,来学习这两种情况下怎么使用. 场景: 1.新建struts_04

使用jQuery异步传递含复杂属性及集合属性的Model到控制器方法

Student类有集合属性Courses,如何把Student连同集合属性Courses传递给控制器方法? public class Student     {         public string StudentName { get; set; }         public IList<Course> Courses { get; set; }     } public class Course     {         public string CourseName { ge

(转)Hibernate框架基础——映射集合属性

http://blog.csdn.net/yerenyuan_pku/article/details/52745486 集合映射 集合属性大致有两种: 单纯的集合属性,如像List.Set或数组等集合属性. Map结构的集合属性,每个属性值都有对应的Key映射. 集合映射的元素大致有如下几种: list:用于映射List集合属性. set:用于映射Set集合属性. map:用于映射Map集合性. array:用于映射数组集合属性. bag:用于映射无序集合. idbag:用于映射无序集合,但为集

Hibernate 集合映射 一对多多对一 inverse属性 + cascade级联属性 多对多 一对一 关系映射

1 . 集合映射 需求:购物商城,用户有多个地址. // javabean设计 // javabean设计 public class User { private int userId; private String userName; // 一个用户,对应的多个地址 private Set<String> address; private List<String> addressList = new ArrayList<String>(); //private Str

Properties类:属性列表,集合

Properties类的概述(集合) 1. Properties类的特点:        1) 属性列表(键和值)中每个键及其对应值都是一个字符串        2) 可保存在流中或从流中加载,可以对IO流进行操作.把属性集合存到文件中,或从文件中读取所有的属性. 2. 属性文件的格式要求:        属性文件中不能直接汉字,所有的汉字会转成Unicode编码        1) 格式:属性名=属性值        2) 每个属性占一行        3) 注释:以#号开头的行是注释行   

[原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

MongoDB学习笔记~对集合属性的操作

回到目录 $unset清除元素 请注意在单个数组元素上使用$unset的结果可能与你设想的不一样.其结果只是将元素的值设置为null,而非删除整个元素.要想彻底删除某个数组元素,可以用$pull 和$pop操作符. $addToSet和$push的区别 该两者的功能都是给数组添加一个值.但是两者之间有区别,$addToSet要添加的值如果不存在才进行添加操作,但是push只添加一个值:例如: tags = [“zzl”,”dudu”] 如果执行db.collection.update({},{$

MongoDB学习笔记~数据模型属性为集合时应该为它初始化

回到目录 今天要说一下技术点,我们在设计mongodb的数据模型时,如果属性是数组或者集合类型,我们在模型初始化时,需要为它们初始化一下,否则在数据库里将会被存储为NULL,当被存储为NULL时,我们将无法进行组件的push,pull等操作. 之间在设计模型时没有注意这点,然后产生的问题就是,没有被集合赋值,在mongodb里将会存储为NULL 而在对数组元素进行push时,当然就出现了下面的异常,因为mongodb不知道它是一个数组对象,呵呵 当我们为模块的集合属性初始化这后,存储的数据结构就

JVM-class文件完全解析-属性表集合

属性表集合 在前面魔数,次版本号,主板本号,常量池入口,常量池,访问标志,类索引,父类索引,接口索引集合,字段表集合,方法表集合,那么接下来就是属性表集合了.   在class文件,字段表,方法表都可以携带自己的属性表集合(像前面方法表的时候就用到"code"这个属性表)以用于描述某些场景专有的信息. 虚拟机中预定义的属性: 属性名称 使用位置 含义 Code 方法表 Java代码编译成的字节码指令 ConstantValue 字段表 final关键字定义的常量池 Deprecated 类,方法