今天写接口,返回的数据是一行,但是要返回的是一个列表。我直接返回map,如果是
多条数据,会覆盖map里面的key值.仍然是一行。返回列表需要把map放在list里面,然后在放在
1)声明List<Person> personList = new ArrayList<Person>();
List<Map<String, Object>> psnList = new ArrayList<Map<String, Object>>();
把Map放在List中
2)通过for循环去遍历List
for (int i = 0; i < personList.size(); i++) {
Map<String, Object> tempMap = new HashMap<String, Object>();
Person person = (Person) personList.get(i);
tempMap.put("psnId", person.getPsnid());
tempMap.put("loginName", person.getLoginname());
tempMap.put("psnName", person.getPsnname());
psnList.add(tempMap);
}
然后把这个临时的map放在list里面;
3) 最后把psnList放在新的returnMap里面,返回map
新的Map --> Map<String, Object> returnMap = new HashMap<String, Object>();
returnMap.put("returnMsg", psnList);
4) 返回一个列表,需要把map转换成Json
out.println(JsonMaps.parseMapToJson(returnMap));
5)parseMapToJson实现的方法
public static String parseMapToJson(Map<String, Object> map) {
String json = null;
JSONArray jsonArray = JSONArray.fromObject(map);
json = jsonArray.toString();
return json;
}
多条数据,会覆盖map里面的key值.仍然是一行。返回列表需要把map放在list里面,然后在放在
新的map里面,把map转换成json格式返回。
JSONArray.fromobject(只能转换list对象);
JSONObject.fromobject(括号中是bean或者是map对象,不能是action中的属性)
1)声明List<Person> personList = new ArrayList<Person>();
List<Map<String, Object>> psnList = new ArrayList<Map<String, Object>>();
把Map放在List中
2)通过for循环去遍历List
for (int i = 0; i < personList.size(); i++) {
Map<String, Object> tempMap = new HashMap<String, Object>();
Person person = (Person) personList.get(i);
tempMap.put("psnId", person.getPsnid());
tempMap.put("loginName", person.getLoginname());
tempMap.put("psnName", person.getPsnname());
psnList.add(tempMap);
}
然后把这个临时的map放在list里面;
3) 最后把psnList放在新的returnMap里面,返回map
新的Map --> Map<String, Object> returnMap = new HashMap<String, Object>();
returnMap.put("returnMsg", psnList);
4) 返回一个列表,需要把map转换成Json
out.println(JsonMaps.parseMapToJson(returnMap));
5)parseMapToJson实现的方法
public static String parseMapToJson(Map<String, Object> map) {
String json = null;
JSONArray jsonArray = JSONArray.fromObject(map);
json = jsonArray.toString();
return json;
}