spring mvc 返回json数据的四种方式
生活随笔
收集整理的這篇文章主要介紹了
spring mvc 返回json数据的四种方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.返回ModelAndView,其中包含map集
/** 返回ModelAndView類型的結果* 檢查用戶名的合法性,如果用戶已經存在,返回false,否則返回true(返回json數據,格式為{"valid",true})*/@RequestMapping(value = "/checkNameExistsMethod2", produces = "application/json;charset=UTF-8") //這里的produces值在不設置的情況下將根據返回結果自動決定public @ResponseBodyModelAndView 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 @ResponseBodyString 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 @ResponseBodyString checkNameValidMethod1(@RequestParam String name) {boolean result = true;String resultString = "{\"result\":true}"; //注意一定是雙引號 "{\"result\":\"success\"}"return resultString;}?
三.返回任何預定義class類型的結果:
@RequestMapping(value = "/findEmployeebyName")public @ResponseBodyEmployee 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();} }?
總結
以上是生活随笔為你收集整理的spring mvc 返回json数据的四种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java多线程(一)之volatile深
- 下一篇: Java多线程(二)之Atomic:原子