java在controller层怎么返回json数据给前台

/**
*
* @param request
* @return
*/
@RequestMapping(value = "linkCity", method = RequestMethod.POST)

@ResponseBody

public String linkCity(HttpServletRequest request){

String msg="";
try {

String privnce=request.getParameter("privnce");
List> msgList=new ArrayList>();
//根据省份获取市
List cityList = areaService.selectCity(privnce);
if(cityList.size()>0){

for (int i = 0; i < cityList.size(); i++) {

Area area=cityList.get(i);

Map msgMap=new HashMap();

msgMap.put("mcyCity", area.getCityname());

msgList.add(msgMap);

}

}

} catch (Exception e) {

e.printStackTrace();

}
return ;
}

要return什么回去..求指教

试试用jsonObject把msgList的数据转化一下,然后就能return了

在方法的参数列表中增加参数HttpServletResponse response;
然后

 PrintWriter out = response.getWriter();
 out.println(area.getCityname());

@ResponseBody 的作用就是直接把返回的结果转成json格式
你可以直接返回msgList,@ResponseBody注解会自动转成json,把方法的返回类型改成List