SpringBoot返回字符串的方式也是有两种,一种是通过@ResponseBody@RequestMapping(value = "/request/data", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") 中的produces = "application/json;charset=UTF-8" 来设定返回的数据类型是json,utf-8编码,第二种方式,是通过response的方式,直接写到客户端对象。在Springboot中,推荐使用注解的方式。

代码地址

https://gitee.com/yellowcong/springboot-demo/tree/master/springboot-json

目录结构

JSONController2 这个类,是这个案例的代码,JSONController 是上一篇的例子。

1、通过@ResponseBody

通过@ResponseBody 方式,需要在@RequestMapping 中,添加produces = "application/json;charset=UTF-8",设定返回值的类型。

/*** 创建日期:2018年4月6日<br/>* 代码创建:黄聪<br/>* 功能描述:通过request的方式来获取到json数据<br/>* @param jsonobject 这个是阿里的 fastjson对象* @return*/
@ResponseBody
@RequestMapping(value = "/body/data", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public String writeByBody(@RequestBody JSONObject jsonParam) {// 直接将json信息打印出来System.out.println(jsonParam.toJSONString());// 将获取的json数据封装一层,然后在给返回JSONObject result = new JSONObject();result.put("msg", "ok");result.put("method", "@ResponseBody");result.put("data", jsonParam);return result.toJSONString();
}

2、通过HttpServletResponse来返回

通过HttpServletResponse 获取到输出流后,写出数据到客户端,也就是网页了。

/*** 创建日期:2018年4月6日<br/>* 代码创建:黄聪<br/>* 功能描述:通过HttpServletResponse 写json到客户端<br/>* @param request* @return*/
@RequestMapping(value = "/resp/data", method = RequestMethod.POST)
public void writeByResp(@RequestBody JSONObject jsonParam,HttpServletResponse resp) {// 将获取的json数据封装一层,然后在给返回JSONObject result = new JSONObject();result.put("msg", "ok");result.put("method", "HttpServletResponse");result.put("data", jsonParam);//写json数据到客户端this.writeJson(resp, result);
}/*** 创建日期:2018年4月6日<br/>* 代码创建:黄聪<br/>* 功能描述:写数据到浏览器上<br/>* @param resp* @param json*/
public void writeJson(HttpServletResponse resp ,JSONObject json ){PrintWriter out = null;try {//设定类容为json的格式resp.setContentType("application/json;charset=UTF-8");out = resp.getWriter();//写到客户端out.write(json.toJSONString());out.flush();} catch (IOException e) {e.printStackTrace();}finally{if(out != null){out.close();}}
}

3、测试

可以看到,我先访问的是HttpServletResponse的这个类,然后才是通过Springmvc提供的方法反回,可以看到,编码都是utf-8,也是json的数据类型。

参考文章

https://www.cnblogs.com/yoyotl/p/7026566.html

Springboot之返回json数据格式的两种方式-yellowcong相关推荐

  1. Asp.net Web API 返回Json对象的两种方式

    这两种方式都是以HttpResponseMessage的形式返回, 方式一:以字符串的形式 var content = new StringContent("{\"FileName ...

  2. java 接收json 字符串_spring接收json字符串的两种方式

    一.前言 前几天遇到一个问题,前端H5调用我的springboot一个接口(post方式,@RequestParameter接收参数),传入的参数接收不到.自己测试接口时使用postman的form- ...

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

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

  4. spring mvc 返回json数据的四种方式

    一.返回ModelAndView,其中包含map集 /** 返回ModelAndView类型的结果* 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式为{ ...

  5. json解析详解 java_Java解析Json数据的两种方式详解

    JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量,所以使用越来越广泛,下面介绍使用JsonObject和JsonArray的两种方式解析Json数据. 使用以上两种方式解析json ...

  6. Springboot pox.xml 报错解决两种方式

    首次运用spring boot,然后细心的学习了一天,每一个系统在没有全部弄清它之前.里面的各种配置,运行时总会出现想不到的意外. 总结一天学习的结果:程序正常运行.明白里面的原理.返回json和返回 ...

  7. Spring-boot中读取config配置文件的两种方式

    了解过spring-Boot这个技术的,应该知道Spring-Boot的核心配置文件application.properties,当然也可以通过注解自定义配置文件的信息. Spring-Boot读取配 ...

  8. spark中将数据输出到json文件的两种方式

    在学习spark时,我们经常遇到要将数据写进一个json文件中的案例.通常的案例就是,给我们一个普通文件,然后我们用sparkcore或者sparkSQL,遍历文件内容后,按照需求将再将遍历后得到的数 ...

  9. springboot配置多个数据源(两种方式)

    在我们的实际业务中可能会遇到:在一个项目里面读取多个数据库的数据来进行展示,spring对同时配置多个数据源是支持的. 本文中将展示两种方法来实现这个功能. springboot+mybatis 第一 ...

最新文章

  1. Oracle 触发器 Update 不能操作本表的疑问
  2. 算法---------两个数的交集
  3. day16——函数式编程和内置函数
  4. 专访卢政:TSF如何助力企业微服务开发
  5. Bash脚本教程之算数运算
  6. springboot增删改查案例_大神基于SpringBoot开发一个Restful服务,实现增删改查功能...
  7. 学习TeXworks编辑器(二)TAB补全详解与自定义补全命令总结
  8. JQuery学习系列(三)语法
  9. Apache Struts ‘includeParams’安全绕过漏洞
  10. 云桌面终端_云桌面是否真的有被夸大,看完你就知道了
  11. 知网论文[全PDF下载],从此告别CAJ阅读器
  12. 4.4 数据的寻址方式(立即寻址、直接寻址、间接寻址、寄存器寻址、相对地址)
  13. 在java语言中所有类都是,【填空题】(10-1)Java语言中,( )是所有 类的祖先类。
  14. mysql中secure_file_priv=不生效的问题
  15. Suspense示例
  16. python画菱形的代码_Python怎么用星号画平行四边形菱形
  17. deepin C++ 编译错误 file not found 其实是原文件后缀的问题
  18. 用 VMware 12 Player 安装Ubuntu 14.04.5 分区时提示“没有定义根文件系统,请回到分区菜单以修正此错误”
  19. LEARUN快速开发平台,让开发变得更简单
  20. 刑事犯罪中连续犯与继续犯的区分

热门文章

  1. vite项目低版本浏览器兼容性问题
  2. HTML盒子模型制作个人名片,网页设计基础 CSS盒子模型 第4章 CSS盒子模型_教学设计.doc...
  3. js关闭当前网页,去掉弹窗
  4. JAVA下载 PDF 到本地 或 返回文件流
  5. 什么是HADOOP以及HADOOP生态圈以及各组成部分的简介
  6. bilibili首页推荐图片动态显示
  7. 计算机大专毕业论文选题和论文提纲,急!!计算机论文提纲怎么写
  8. 怎么访问远端计算机视频,GOM Remote怎么用?使用GOM remote远程控制电脑播放视频的方法介绍...
  9. 冀教版三年级计算机技术教案,冀教版小学信息技术教案三年级下
  10. 有自学能力的人,赚钱极其简单—速营社