本文介绍使用net.sf.json包进行集合之间的转换
一.首先需要的jar包一共有6个:
commons-beanutils-1.7.0.jar
commons-collections-3.1.jar
commons-lang-2.5.jar
commons-logging.jar
ezmorph-1.0.3.jar
json-lib-2.4-jdk15.jar
commons-collections-3.1.jar
commons-lang-2.5.jar
commons-logging.jar
ezmorph-1.0.3.jar
json-lib-2.4-jdk15.jar
核心方法:
JSONObject json = JSONObject.fromObject(obj);
JSONArray json = JSONArray.fromObject(obj);
二.javabean转换为json
Person p = new Person("张三",100,"man");
JSONObject json = JSONObject.fromObject(p);
System.out.println(json);
//结果:{"age":100,"name":"张三","sex":"man"}
三.List转换为json
1.普通List集合
List list = new ArrayList();
list.add("obj1");
list.add("obj2");
list.add("obj3");
JSONArray json = JSONArray.fromObject(list);
System.out.println(json);
//结果:["obj1","obj2","obj3"]
2.对象为javabean的List集合
List<Person> list = new ArrayList<Person>();
Person person1 = new Person("张三",20,"男");
Person person2 = new Person("李四",21,"女");
Person person3 = new Person("王五",22,"男");
list.add(person1);
list.add(person2);
list.add(person3);
JSONArray json = JSONArray.fromObject(list);
System.out.println(json);
//结果:[{"age":20,"name":"张三","sex":"男"},{"age":21,"name":"李四","sex":"女"},{"age":22,"name":"王五","sex":"男"}]
四.Map集合转换为Json
1、普通Map集合
Map map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
JSONObject json = JSONObject.fromObject(map);
System.out.println(json);
//结果:{"key3":"value3","key2":"value2","key1":"value1"}
2、value是javabean的Map集合
Map<String,Person> map = new HashMap<String,Person>();
Person person1 = new Person("张三",20,"男");
Person person2 = new Person("李四",21,"女");
Person person3 = new Person("王五",22,"男");
map.put("k1", person1);
map.put("k2", person2);
map.put("k3", person3);
JSONObject json = JSONObject.fromObject(map);
System.out.println(json);
//结果;{"k3":{"age":22,"name":"王五","sex":"男"},"k1":{"age":20,"name":"张三","sex":"男"},"k2":{"age":21,"name":"李四","sex":"女"}}