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数据的四种方式相关推荐
- Spring学习手册 1:Spring MVC 返回JSON数据
目录 完整代码在这 Spring MVC对JSON数据格式的支持非常好,配置完成后什么都不用管靠注解就可以轻松返回JSON格式的数据. Spring 对JSON的支持有三种方式,下面会一一介绍,在此之 ...
- spring mvc 返回json数据到ajax报错parseerror问题
最近使用ajax接收spring mvc传过来的json数据时总是出现parseerror的错误,错误源码如下: 前端: $.ajax({type: 'POST',url: "groupFu ...
- 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 ...
- Spring MVC中返回JSON数据的几种方式
我们都知道Spring MVC 的Controller方法中默认可以返回ModeAndView 和String 类型,返回的这两种类型数据是被DispatcherServlet拿来给到视图解析器进行继 ...
- Spring MVC 返回json数据 报406错误 问题解决方案
将jackson jar包改为jackson-databind-2.5.0.jar jackson-core-2.5.0.jar jackson-annotations-2.5.0.jar(这个版 ...
- spring MVC 返回json
spring MVC如何返回json呢? 有两种方式: 方式一:使用ModelAndView Java代码 @ResponseBody @RequestMapping("/save&qu ...
- 控制器中接收数据的四种方式
控制器中接收数据的四种方式: (仅限于个别的方式(get/post)有效) 通过形参的方式接收表单提交的数据(可以接收post与get提交的数据): 注释: GetData自己定义的方法名里面存入形参 ...
- java配置文件实现方式_java相关:详解Spring加载Properties配置文件的四种方式
java相关:详解Spring加载Properties配置文件的四种方式 发布于 2020-4-29| 复制链接 摘记: 一.通过 context:property-placeholder 标签实现配 ...
- spring加载ApplicationContext.xml的四种方式
spring加载ApplicationContext.xml的四种方式 spring 中加载xml配置文件的方式,好像有4种, xml是最常见的spring 应用系统配置源.Spring中的几种容器都 ...
最新文章
- Python设计模式-解释器模式
- Windows 技巧篇-设置我的漂亮桌面
- docker网络之macvlan
- java二维矩阵怎么进行转置_矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)...
- 看几道JQuery试题后总结(下篇)
- socket编程--sockaddr_in结构体操作
- php 数组降维,php 数组去重的方法参考(一维数组去重、二维数组去重)
- c语言中将函数指针作为形参_在C中将有效指针作为NULL指针
- oracle用户新增数据文件,[数据库]20200722_Oracle添加表空间、用户,用户授权
- vue.js v-bind
- Eclipse里编辑代码,进度条出现“Remote System Explorer Operation”解决方法
- clickhouse修改表的TTL
- 【Pycharm】连接远程服务器并进行代码上传、调试
- JAVA生成64,32位UUID密钥
- P5144 蜈蚣 (线性DP)
- MHL接口的静电保护方案
- Unity 相机被遮挡的判断与处理
- 72、公安网络视频监控系统解决方案
- html怎么设置视频不能快进,【浏览器插件】Video Speed Controller – 网页视频倍速、快进、回放功能0.07~16 倍...
- c++版本的高斯混合模型的源代码完全注释
热门文章
- Mybatis插入数据后获取主键的值
- java枚举新特性_java回顾之枚举和新特性
- crontab 每5分钟_Crontab安装步骤和命令使用详细解说
- python爬虫之美女图片爬取
- MySQL之日期时间处理函数_MySQL之日期时间处理函数
- numpy pytorch 接口对应_拆书分享篇深度学习框架PyTorch入门与实践
- mysql 只返回第一条_mybatis 关联查询时,从表只返回第一条记录解决办法
- php 特殊符号处理,处理特殊符号的方法-php技巧
- mysql拒绝访问root用户_设置mysql的root用户允许远程登录
- tensorflow打印模型结构_社区分享 | 详解 TensorFlow 中 Placement 的最后一道防线 — Placer 算法...