比如目前有个对象 Person,有属性 sex age name
List<Person> 是按 sex 和 age 排序过的。例如
男 18 a
男 18 b
男 19 c
男 20 d
男 20 e
女 18 q
女 19 a
女 19 z
女 20 w
女 20 s
构造成前端可以识别的json[
{
"sex": "男",
"data": [
{
"age": 18,
"data": [
"a",
"b"
]
},
{
"age": 19,
"data": [
"c"
]
},
{
"age": 20,
"data": [
"d",
"e"
]
}
]
},
{
"sex": "女",
"data": [
{
"age": 18,
"data": [
"q"
]
},
{
"age": 19,
"data": [
"a",
"z"
]
},
{
"age": 20,
"data": [
"w",
"s"
]
}
]
}
]除了for循环里套for循环,还有什么方法可以实现?
List<Person> 是按 sex 和 age 排序过的。例如
男 18 a
男 18 b
男 19 c
男 20 d
男 20 e
女 18 q
女 19 a
女 19 z
女 20 w
女 20 s
构造成前端可以识别的json[
{
"sex": "男",
"data": [
{
"age": 18,
"data": [
"a",
"b"
]
},
{
"age": 19,
"data": [
"c"
]
},
{
"age": 20,
"data": [
"d",
"e"
]
}
]
},
{
"sex": "女",
"data": [
{
"age": 18,
"data": [
"q"
]
},
{
"age": 19,
"data": [
"a",
"z"
]
},
{
"age": 20,
"data": [
"w",
"s"
]
}
]
}
]除了for循环里套for循环,还有什么方法可以实现?
例如:
@ResponseBody
public List<Map<String,Object>> showJson
{
List<Person> personList = ......
List<Map<String,Object>> resultList = new ArrayList<>();
for(Person person:personList)
{
Map<String,Object> resultMap = new HashMap<>();
resultMap.put("sex",person.getSex());
resultMap.put("data",......);
resultList.add(resultMap);
}
return resultList;
}
剩下的自己补,你的name好像还是一个集合啊!
public String testJson(HttpServletResponse response) throws IOException {
JSONObject job = new JSONObject();
List<User> users = new ArrayList<User>();
for (int i = 0; i < 3; i++) {
List<Dept> depts = new ArrayList<Dept>();
for (int j = 0; j < 3; j++) {
Dept dept = new Dept(Long.valueOf(j), String.valueOf(j));
depts.add(dept);
}
users.add(new User(Long.valueOf(i), String.valueOf(i), "123456", depts));
}
job.put("usersList", users);
response.getWriter().println(job.toString());
return null;
}