xstream转换Map和List
2019-04-27 11:42
134 查看
本文地址:https://www.geek-share.com/detail/2531712321.html
废话不说了,就是不想定义太多的java bean,有时候需求比较简单,就想着直接用java的集合类来替换太多的java bean定义,看下面的代码例子
package org.garbagecan.xstreamstudy.converter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.io.xml.DomDriver;public class TestMapListConverter { @SuppressWarnings({ "rawtypes", "unchecked" }) public static void main(String[] args) { XStream xstream = new XStream(new DomDriver()); Map map = new HashMap(); List list1 = new ArrayList(); list1.add(new T("a1", "b1", "c1")); list1.add(new T("a2", "b2", "c2")); List list2 = new ArrayList(); list2.add(new T("a3", "b3", "c3")); list2.add(new T("a4", "b4", "c4")); map.put("t1", list1); map.put("t2", list2); xstream.alias("classes", Map.class); xstream.alias("class", Map.Entry.class); xstream.alias("name", String.class); xstream.alias("fields", List.class); xstream.alias("field", T.class); xstream.aliasAttribute(T.class, "a", "a"); xstream.aliasAttribute(T.class, "b", "b"); xstream.aliasAttribute(T.class, "c", "c"); System.out.println(xstream.toXML(map)); System.out.println((Map)xstream.fromXML(xstream.toXML(map))); }}class T { public T(String a, String b, String c) { this.a = a; this.b = b; this.c = c; } private String a; private String b; private String c; public String getA() { return a; } public void setA(String a) { this.a = a; } public String getB() { return b; } public void setB(String b) { this.b = b; } public String getC() { return c; } public void setC(String c) { this.c = c; } @Override public String toString() { return org.apache.commons.lang.builder.ToStringBuilder.reflectionToString(this); }}运行上面的例子得到的xml内如如下:
<classes> <class> <name>t2</name> <fields> <field a="a3" b="b3" c="c3"/> <field a="a4" b="b4" c="c4"/> </fields> </class> <class> <name>t1</name> <fields> <field a="a1" b="b1" c="c1"/> <field a="a2" b="b2" c="c2"/> </fields> </class></classes>得到的java对象内容如下:
{t2=[org.garbagecan.xstreamstudy.converter.T@b166b5[a=a3,b=b3,c=c3], org.garbagecan.xstreamstudy.converter.T@1837697[a=a4,b=b4,c=c4]], t1=[org.garbagecan.xstreamstudy.converter.T@1decdec[a=a1,b=b1,c=c1], org.garbagecan.xstreamstudy.converter.T@a1807c[a=a2,b=b2,c=c2]]}
相关文章推荐
- xstream转换Map和List
- xstream转换Map和List
- 使用xStream对(Java对象、List集合、Map )到JSON转换、从JSON转换java对象
- jdk8 stream可以与list,map等数据结构互相转换
- 数组与list、set、map相互转换
- Java List, Set, Map, 数组间的相互转换
- MapStruct实体转换及List转换的方法讲解
- 【Java中将JSON格式的数据转换成对应的Bean、Map、List数据】
- java中Array/List/Map/Object与Json互相转换详解
- json转换成list map集合
- Java 8 将List转换为Map
- Java 集合转换(数组、List、Set、Map相互转换)
- list,set,map,数组间的相互转换
- Dom4J解析xml文件动态转换为List<Bean>或者Map集合
- JAVA中List转换String,String转换List,Map转换String,String转换Map之间的转换类 .
- Java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- GSON利用map和list转换json对象
- Java中将JSON格式的数据转换成对应的Bean、Map、List数据
- Java 中 List<Map<String,Object>> 转换 List<javaBean> 详解