一.返回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数据的四种方式相关推荐

  1. Spring学习手册 1:Spring MVC 返回JSON数据

    目录 完整代码在这 Spring MVC对JSON数据格式的支持非常好,配置完成后什么都不用管靠注解就可以轻松返回JSON格式的数据. Spring 对JSON的支持有三种方式,下面会一一介绍,在此之 ...

  2. spring mvc 返回json数据到ajax报错parseerror问题

    最近使用ajax接收spring mvc传过来的json数据时总是出现parseerror的错误,错误源码如下: 前端: $.ajax({type: 'POST',url: "groupFu ...

  3. java解析与生成json数据的四种方式,比如将json字符串转为json对象或json对象转为json字符串

    文章目录 1. 详说json 1.1 何为json 1.2 json语法 2. Java解析与生成JSON的四种方式 2.1 传统方式 2.2 利用Jackson方式 2.3 利用Gson方式 2.4 ...

  4. Spring MVC中返回JSON数据的几种方式

    我们都知道Spring MVC 的Controller方法中默认可以返回ModeAndView 和String 类型,返回的这两种类型数据是被DispatcherServlet拿来给到视图解析器进行继 ...

  5. Spring MVC 返回json数据 报406错误 问题解决方案

    将jackson jar包改为jackson-databind-2.5.0.jar  jackson-core-2.5.0.jar  jackson-annotations-2.5.0.jar(这个版 ...

  6. spring MVC 返回json

    spring MVC如何返回json呢? 有两种方式: 方式一:使用ModelAndView Java代码   @ResponseBody @RequestMapping("/save&qu ...

  7. 控制器中接收数据的四种方式

    控制器中接收数据的四种方式: (仅限于个别的方式(get/post)有效) 通过形参的方式接收表单提交的数据(可以接收post与get提交的数据): 注释: GetData自己定义的方法名里面存入形参 ...

  8. java配置文件实现方式_java相关:详解Spring加载Properties配置文件的四种方式

    java相关:详解Spring加载Properties配置文件的四种方式 发布于 2020-4-29| 复制链接 摘记: 一.通过 context:property-placeholder 标签实现配 ...

  9. spring加载ApplicationContext.xml的四种方式

    spring加载ApplicationContext.xml的四种方式 spring 中加载xml配置文件的方式,好像有4种, xml是最常见的spring 应用系统配置源.Spring中的几种容器都 ...

最新文章

  1. Python设计模式-解释器模式
  2. Windows 技巧篇-设置我的漂亮桌面
  3. docker网络之macvlan
  4. java二维矩阵怎么进行转置_矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)...
  5. 看几道JQuery试题后总结(下篇)
  6. socket编程--sockaddr_in结构体操作
  7. php 数组降维,php 数组去重的方法参考(一维数组去重、二维数组去重)
  8. c语言中将函数指针作为形参_在C中将有效指针作为NULL指针
  9. oracle用户新增数据文件,[数据库]20200722_Oracle添加表空间、用户,用户授权
  10. vue.js v-bind
  11. Eclipse里编辑代码,进度条出现“Remote System Explorer Operation”解决方法
  12. clickhouse修改表的TTL
  13. 【Pycharm】连接远程服务器并进行代码上传、调试
  14. JAVA生成64,32位UUID密钥
  15. P5144 蜈蚣 (线性DP)
  16. MHL接口的静电保护方案
  17. Unity 相机被遮挡的判断与处理
  18. 72、公安网络视频监控系统解决方案
  19. html怎么设置视频不能快进,【浏览器插件】Video Speed Controller – 网页视频倍速、快进、回放功能0.07~16 倍...
  20. c++版本的高斯混合模型的源代码完全注释

热门文章

  1. Mybatis插入数据后获取主键的值
  2. java枚举新特性_java回顾之枚举和新特性
  3. crontab 每5分钟_Crontab安装步骤和命令使用详细解说
  4. python爬虫之美女图片爬取
  5. MySQL之日期时间处理函数_MySQL之日期时间处理函数
  6. numpy pytorch 接口对应_拆书分享篇深度学习框架PyTorch入门与实践
  7. mysql 只返回第一条_mybatis 关联查询时,从表只返回第一条记录解决办法
  8. php 特殊符号处理,处理特殊符号的方法-php技巧
  9. mysql拒绝访问root用户_设置mysql的root用户允许远程登录
  10. tensorflow打印模型结构_社区分享 | 详解 TensorFlow 中 Placement 的最后一道防线 — Placer 算法...