spring mvc 返回json数据的四种方式
2023-09-11 14:17:56 时间
一.返回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(); } }
相关文章
- Spring MVC数据校验与国际化
- spring学习笔记(17)数据库配置[1]spring数据连接池详解
- 配置 Spring 的声明式事务
- spring boot: @Entity @Repository一个简单的数据读存储读取
- Spring Boot 2.x :通过 spring-boot-starter-hbase 集成 HBase
- Spring Boot (三): ORM 框架 JPA 与连接池 Hikari
- 大叔问题定位分享(34)Spring的RestTemplate请求json数据后内容被修改
- Spring自定义标签解析
- 分布式主流配置中心介绍:Apollo/Nacos/Spring Cloud Config/Disconf等
- Spring MVC--接收JSON格式的数据
- Atitit Spring事务配置不起作用可能出现的问题: .是否是数据库引擎设置不对造成的【笔者就遇到了这个问题,由于笔者使用的是mysql数据,但是在创建表的时候引擎默认(mysql中引擎默认为
- 学习Spring Boot:(二十五)使用 Redis 实现数据缓存
- 学习Spring Boot:(十)使用hibernate validation完成数据后端校验
- slf4j+logback日志框架 的具体使用操作【spring boot自带的默认日志框架】
- websocket 使用 spring 的service层 ,进而调用里面的 dao层 来操作数据库 ,包括redis、mysql等通用
- spring的返回json数据给前端注意事项
- 小伙伴们在催更Spring系列,于是我写下了这篇注解汇总!!
- 002-MVC架构,贫血的领域模型、spring mvc,webhars使用
- 001-Spring Cloud Edgware.SR3 升级最新 Finchley.SR1,spring boot 1.5.9.RELEASE 升级2.0.4.RELEASE注意问题点
- 005-spring-data-elasticsearch 3.0.0.0使用【三】-spring-data之Spring数据扩展
- Spring提供的@Validated和MethodValidationPostProcessor完成数据校验
- spring-boot-starter-jdbc与数据访问
- Spring MVC Formatter(数据格式化)详解
- 【Spring】Spring缓存注解@Cacheable、@CacheEvict、@CachePut使
- spring data jpa实现数据作废(删除)功能