DB_listYear Class Student
------------------------
2013 No1 zhangsan
2013 No1 lisi
2013 No2 wangwu
2012 No1 zhaoliu
2012 No1 tianqi数据存储在一个Map类型的List中。转换前JSON格式:[{"Year":"2013","Class":"No1","Student":"zhangsan"}]转换后按以下格式显示JSON字符串{"info":[{"Year":"2013","ClassList":[{"Class":"No1","StudentList":[{"Student":"zhangsan"}]}]}]}
求集合转换过程:由原来的Map格式List 转为 一个MapJSON
解决方案 »
- 一个正则表达式的问题
- 一个关于继承的问题
- 把long 转换成 float 失败?!
- 求助:JSplitPane中使用两个JScrollPane,如何拖动一个JScrollPane的滚动条,产生两个JScrollPane一起连动的效果。
- jar 打包问题
- 请教为什么会报NullPointerException
- 如何禁止窗体的最大化、最小化和关闭操作
- 关于接口与OO的讨论,请大家参与!!!
- 用socket写个server/client聊天的应用程序。但是显示不是同步的。怎么办?
- 关于Diy09短信调用返回值?
- struts2与jsp之间的交互
- 如何把带有字母符号数字的16进制的字符串转换为普通字符串啊
for(int i=0;i<3;i++){
Map<String, Object> map=new HashMap<String, Object>();
if(i==0){
map.put("Year", 2013);
}else if(i==1){
map.put("Class", "No1");
}else{
map.put("Student", "zhangsan");
}
list.add(map);
}
Map<String, Object> map1=new HashMap<String, Object>();
List<Map<String, Object>> studentList=new ArrayList<Map<String,Object>>();
Map<String,Object> studentMap=new HashMap<String, Object>();
studentMap.put("Student", list.get(2).get("Student"));
studentList.add(studentMap);
map1.put("Class", list.get(1).get("Class"));
map1.put("StudentList", studentList);
List<Map<String, Object>> classList=new ArrayList<Map<String,Object>>();
classList.add(map1);
Map<String,Object> classMap=new HashMap<String, Object>();
classMap.put("Year", list.get(0).get("Year"));
classMap.put("ClassList", classList);
List<Map<String, Object>> yearList=new ArrayList<Map<String,Object>>();
yearList.add(classMap);
map3.put("info", yearList);
数据库是5条数据,要将它变成两条
重组出来的数据用json格式是这样
想得到这样的结果:
{
"info": "
{"Year":"2013","ClassList":"{
"Class": "No1",
"StudentList": "{"Student":"zhangsan"},{"Student":"lisi"}"
},
{
"Class": "No2",
"StudentList": "{"Student":"wangwu"}"
}"}
{"Year":"2012","ClassList":"{
"Class": "No1",
"StudentList": "{"Student":"zhaoliu"},{"Student":"tianqi"}"
}"}
"
}
数据库是5条数据,要将它变成两条
重组出来的数据用json格式是这样
想得到这样的结果:
{
"info": "
{"Year":"2013","ClassList":"{
"Class": "No1",
"StudentList": "{"Student":"zhangsan"},{"Student":"lisi"}"
},
{
"Class": "No2",
"StudentList": "{"Student":"wangwu"}"
}"}
{"Year":"2012","ClassList":"{
"Class": "No1",
"StudentList": "{"Student":"zhaoliu"},{"Student":"tianqi"}"
}"}
"
}
我给你的能输出你要的json对象。你只要把数据代入进去就行。
数据库是5条数据,要将它变成两条
重组出来的数据用json格式是这样
想得到这样的结果:
{
"info": "
{"Year":"2013","ClassList":"{
"Class": "No1",
"StudentList": "{"Student":"zhangsan"},{"Student":"lisi"}"
},
{
"Class": "No2",
"StudentList": "{"Student":"wangwu"}"
}"}
{"Year":"2012","ClassList":"{
"Class": "No1",
"StudentList": "{"Student":"zhaoliu"},{"Student":"tianqi"}"
}"}
"
}
我给你的能输出你要的json对象。你只要把数据代入进去就行。
我能明白你的意思
上面的只是个实例,数据库中存放了很多数据
不能简单的通过,1,2,3的方式便利出来我写了一层的循环,帮忙把第二层弄出来
谢谢
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>();
classMapList.add(classMap);
mapTmp.put("ClassList", classMapList);
resultMapList.add(mapTmp);
}
}
result.put("info", resultMapList);
JSONObject json=JSONObject.fromObject(result);
System.out.println(json.toString());
ListDemo.toArray();
ListDemo.toArray();
ListDemo.toArray();