一.返回ModelAndView,其中包含map集
/* * 返回ModelAndView型別的結果 * 檢查使用者名稱的合法性,如果使用者已經存在,返回false,否則返回true(返回json資料,格式為{"valid",true}) */ @RequestMapping(value = "/checkNameExistsMethod2", produces = "application/json;charset=UTF-8") //這裡的produces值在不設定的情況下將根據返回結果自動決定 public @ResponseBody ModelAndView checkNameValidMethod2(@RequestParam String name) { boolean result = true; //... Map<String, Boolean> map = new HashMap<>(); map.put("valid", result); return new ModelAndView(new MappingJackson2JsonView(), map); }
二.返回String型別的json,這裡有兩種方式。
方式一:使用jackson-databind-x.x.x.jar包中的ObjectMapper將Map型資料改寫為String並返回
/* * 返回String型別的結果 * 檢查使用者名稱的合法性,如果使用者已經存在,返回false,否則返回true(返回json資料,格式為{"valid",true}) */ @RequestMapping(value = "/checkNameExistsMethod1", produces = "application/json;charset=UTF-8") public @ResponseBody String checkNameValidMethod1(@RequestParam String name) { boolean result = true; //... Map<String, Boolean> map = new HashMap<>(); map.put("valid", result); ObjectMapper mapper = new ObjectMapper(); String resultString = ""; try { resultString = mapper.writeValueAsString(map); } catch (JsonProcessingException e) { e.printStackTrace(); } return resultString; }
方式二:
直接返回字串,主要key/value值必須使用含有轉義字元\的雙引號,單引號無效
/* * 返回String型別的結果 * 檢查使用者名稱的合法性,如果使用者已經存在,返回false,否則返回true(返回json資料,格式為{"valid",true}) */ @RequestMapping(value = "/checkNameExistsMethod1", produces = "application/json;charset=UTF-8") public @ResponseBody String checkNameValidMethod1(@RequestParam String name) { boolean result = true; String resultString = "{\"result\":true}"; //注意一定是雙引號 "{\"result\":\"success\"}" return resultString; }
三.返回任何預定義class型別的結果:
@RequestMapping(value = "/findEmployeebyName") public @ResponseBody Employee findEmployeebyName(String name) { List<Employee> lstEmployees = employeeService.getAllEmployees(); for (Employee employee : lstEmployees) { if (employee.getName().equals(name)) return employee; } return null; }
這裡的Employ必須事先定義好。
四.使用HttpServletResponse物件的response.getWriter().write(xxx)方法
@RequestMapping(value="/forbiddenUser") public void forbiddenUser(int id,HttpServletRequest request,HttpServletResponse response) { String resultString="{\"result\":\"success\"}";//注意一定是雙引號 "{\"result\":true}" try { response.setContentType("application/json"); response.getWriter().write(resultString); } catch (IOException e) { e.printStackTrace(); } }