日期:2014-05-20  浏览次数:20658 次

求个二层循环
Year  Class    Student
------------------------
2013   No1     zhangsan
2013   No1     lisi
2013   No2     wangwu
2012   No1     zhaoliu
2012   No1     tianqi


转换前JSON格式:

[{"Year":"2013","Class":"No1","Student":"zhangsan"}]

转换后按以下格式显示JSON字符串

{"info":[{"Year":"2013","ClassList":[{"Class":"No1","StudentList":[{"Student":"zhangsan"}]}]}]}


第一层循环代码如下 
第二层循环如何写?


 Map map1 = new HashMap();
Map map2 = new HashMap();
Map map3 = new HashMap();
Map map4 = new HashMap();
Map map5 = new HashMap();
map1.put("year", 2013);
map1.put("class", "No1");
map1.put("student", "zhangsan");
map2.put("year", 2013);
map2.put("class", "No1");
map2.put("student", "lisi");
map3.put("year", 2013);
map3.put("class", "No2");
map3.put("student", "wangwu");
map4.put("year", 2012);
map4.put("class", "No1");
map4.put("student", "zhaoliu");
map5.put("year", 2012);
map5.put("class", "No1");
map5.put("student", "tianqi");
List<Map> list = new ArrayList<Map>();
list.add(map1);
list.add(map2);
list.add(map3);
list.add(map4);
list.add(map5);
Map result = new HashMap();
List<Map> dbMapList = list;
List<Map> resultMapList = new ArrayList<Map>();
String s = new String();
for (Map dbMap : dbMapList) {
Map existMap = null;
for (Map resultMap : resultMapList) {
int newYear = (Integer) resultMap.get("year");
int oldYear = (Integer) dbMap.get("year");
if (newYear == oldYear) {
existMap = resultMap;
break;
} else {
continue;
}
}
Map classMap = new HashMap();
classMap.put("class", dbMap.get("class"));
if (existMap != null) {
List l = (List) existMap.get("ClassList");
l.add(classMap);
} else {
Map mapTmp = new HashMap();
mapTmp.put("year", dbMap.get("year"));
List<Map> classMapList = new ArrayList<Map>();