我们都知道Spring MVC 的Controller方法中默认可以返回ModeAndView 和String 类型,返回的这两种类型数据是被DispatcherServlet拿来给到视图解析器进行继续处理返回页面的,而不是直接返回给客户端的。有时候我们需要发请求后让服务端直接返回一些数据,不再经过DispatcherServlet,这个时候通常有两种方式:

1.使用@ResponseBody注解

  该注解的作用是把方法返回结果转成json或xml格式并进行返回,不管要返回什么类型的数据,是String还是一个对象,只要是需要请求后想直接返回Json或xml类型的数据,那么就都可以使用这个注解。

  注意:这里@ResponseBody的格式转换是将class类型如一个javabean,map,list等类型进行转换,转换后的结果是一个json对象,如果想返回一个json字符串,那么就需要自己手动处理成json串的格式,json串也就是一个String,这时@ResponseBody就只起到把这个String返回的作用,示例代码如下:

@RequestMapping("/jsontest")@ResponseBodypublic List<User> jsonTest(){    //直接返回json串    //String test1 ="{\"name\":\"zhangsan\"}";    //会直接返回这样一个字符串    //String test2 = "this is test";

    //以下会把List类型转换为[{},{}]这样的数组形式的json对象返回    User user1 = new User();    user1.setLoginName("zhangsan");    user1.setCompany("dept1");    User user2 = new User();    user2.setLoginName("lisi");    user2.setCompany("dept2");    List<User> list = new ArrayList<User>();    list.add(user1);    list.add(user2);    return list;} 总结:一般@ResponseBody注解会将map,JavaBean 对象,如User自动转成{"":"","":""}这种json的对象表示形式,会将list转成[a,b,c]这种json的数组表示形式,而String类型的数据则会直接原样输出。

2.使用response对象返回。

 这种方式就是自己进行数据格式转换,使用response对象进行返回。 response.setContentType("application/json");response.getWriter().write(resultString);

转载于:https://www.cnblogs.com/hanszhao/p/10223374.html

Spring MVC中返回JSON数据的几种方式相关推荐

  1. spring MVC之返回JSON数据(Spring3.0 MVC+Jackson+AJAX)

    参考: http://angelbill3.iteye.com/blog/1985075 问题:在进行springmvc返回json数据的时候报如下错误:用上面的controller,访问:http: ...

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

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

  3. Spring MVC Controller中返回json数据中文乱码处理

    问题 在使用spring MVC Controller的过程中,发现返回到客户端的的中文出现乱码.后台Java代码: @RequestMapping(value = "/upload&quo ...

  4. python返回json数据_python和flask中返回JSON数据的方法

    在python中可以使用json将数据格式化为JSON格式: 1.将字典转换成JSON数据格式: s=['张三','年龄','姓名'] t={} t['data']=s return json.dum ...

  5. Spring mvc 中处理模型数据 ModelAndView

    Spring mvc 中处理模型数据  ModelAndView 原文: http://blog.csdn.net/jingyuan_/article/details/9625125 将模型数据暴露给 ...

  6. html中获取modelandview中的json数据_从Bitmap中获取YUV数据的两种方式

    从Bitmap中我们能获取到的是RGB颜色分量,当需要获取YUV数据的时候,则需要先提取R,G,B分量的值,然后将RGB转化为YUV(根据具体的YUV的排列格式做相应的Y,U,V分量的排列) 所以这篇 ...

  7. python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式

    本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...

  8. MVC中返回Json的几种声明方式

    第一种,单行数据 var result = new { name = "linfei", age = "26", address = "wuhan&q ...

  9. 【Spring MVC学习】WebApplicationContext初始化的三种方式

    ApplicationContext是Spring的核心,Context我们通常解释为上下文环境,我想用"容器"来表述它更容易理解一些,ApplicationContext则是&q ...

最新文章

  1. SparCC的微生物网络构建示例
  2. 众多新点子推动比特币现金BCH普及
  3. java整合mybatis,springboot集成mybatis
  4. Angular - angular2升级到angular8
  5. linux 有趣的命令
  6. 裁员、卖手机、押注VR,HTC能否王者归来?
  7. ESFramework介绍之(28)―― Udp组件
  8. oracle dbms 存放位置,系统统计信息的保存位置
  9. Mac的Adobe Creative Cloud无法连接至服务器解决方法
  10. 【效率提升】建议抛弃全拼输入,拥抱双拼
  11. 浅淡风月 一些有意思的文章
  12. arduino闪烁LED灯
  13. IPsec+预共享密钥的IKE野蛮模式
  14. 计算机科学导论参考文献,物联网毕业论文参考文献精选
  15. Python自学笔记——基础篇
  16. 《铁齿铜牙》主题曲--- 歌词
  17. 完全二叉树——二叉堆(BinaryHeap)
  18. 【虚幻】清理缓存文件(C盘占用过大)
  19. ZeroMQ中的消息信封之二
  20. WordPress查看上次用户何时登录插件When Last Login

热门文章

  1. 面试题:判断字符串是否回文
  2. 数据库msqlserver的几种类型及解决MSSQLServer服务启动不了的问题
  3. Lucene之样例解析(1)-配置Lucene的源代码
  4. 位运算符 | ^ ~的厉害__10进制 To 2进制
  5. MFC的Application Wizard所生成的各种文件功能
  6. 大数据之-Hadoop之HDFS的API操作_网络拓扑_节点离客户端的距离计算---大数据之hadoop工作笔记0067
  7. 大数据之-Hadoop之HDFS_HDFS存储块的大小设置_设置成多少合理_为什么不能设置太小也不能设置太大---大数据之hadoop工作笔记0051
  8. Vue监视---vue工作笔记0005
  9. SpringCloud工作笔记040--- XMLHTTP中setRequestHeader()方法解析
  10. 批量修改图像命名方式