Springmvc返回json 字符串的其他方式

转载 2015年07月09日 16:22:54

Spring MVC返回 json字符串的方式有很多种方法,这里介绍最简单,也是最常使用的两种方式


一、使用  PrintWriter printWriter  直接输出字符串到返回结果中 
   不需要任何xml文件配置

  

1
2
3
4
5
6
7
8
9
//返回给前台一个字符串
 @RequestMapping(params = "method=getJson1")
 public void getJson(@RequestParam("userid") String userid,@RequestHeader("Accept-Encoding") String encoding,HttpServletRequest request,PrintWriter printWriter) {
  System.out.println("通过注解在参数中取值 "+userid);
  System.out.println("通过@RequestHeader获得的encoding "+encoding);
        printWriter.write("{key,1}"); 
        printWriter.flush(); 
        printWriter.close(); 
 }


请求地址:http://localhost:8080/springmvc/hello.do?method=getJson1&userid=111
    返回值: {key,1}

二、通过@ResponseBody  直接返回对象,Spring MVC会自动把对象转化成Json
    需要其他配置支持 
    1、开启  <mvc:annotation-driven />
    2、Jackson library 对应的jar必须加入到工程中
             3、方法的返回值必须添加 @ResponseBody
 

1
2
3
4
5
6
7
8
//把返回结果解析成json串返回到前台
 @RequestMapping(params = "method=json")
 public @ResponseBody User passValue(HttpServletRequest request) {
  User user = new User();
  user.setUser("aaaa");
  user.setPass("asfd");
  return user;
 }

  请求地址:http://localhost:8080/springmvc/hello.do?method=json
  返回值:{"user":"aaaa","pass":"asfd"}


    提醒:注意两种方法不能混用,不然会报错如下:


注意:在使用@ResponseBody 返回json的时候,方法参数中一定不能他添加   PrintWriter printWriter

  java.lang.IllegalStateException: getWriter() has already been called for this response
例如:

//这个方法会报错 因为使用了PrintWriter printWriter  错误 java.lang.IllegalStateException: getWriter() has already been called for this response 

1
2
3
4
5
6
7
 @RequestMapping(params = "method=jsonTest")
 public @ResponseBody Map<String, Object> jsonTest(@RequestParam("userid") String userid,HttpServletRequest request,PrintWriter printWriter) {
  System.out.println("通过注解在参数中取值 "+userid);
  System.out.println("通过自己写的函数从reqeust取值 "+RequestUtil.getMap(request).get("userid"));
  HelloWorld hello = new HelloWorld(RequestUtil.getMap(request));
  return   hello.hello();
 }


原文地址:http://www.itmmd.com/201412/355.html 

springmvc返回json的三种方式

1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew。 如:  或者 同样要用jackson的jar包。 2、第二种使用JSON工具...
  • duchao123duchao
  • duchao123duchao
  • 2016年04月10日 14:11
  • 868

使用SpringMVC返回json字符串

最近开始接触SpringMVC这个框架,这个框架使用起来很方便,框架搭起来之后,写起代码几乎都是一个模式。当然要走到这一步必须保证你的SpringMVC的相关配置都已经完成,并且配置正确!作为我的关于...
  • u011043551
  • u011043551
  • 2018年01月14日 13:50
  • 135

SpringMVC返回json数据的三种方式

1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew。 如:  或者 同样要用jackson的jar包。 2、第二种使用JSON工具将对象序列...
  • shan9liang
  • shan9liang
  • 2014年12月30日 09:02
  • 252728

SpringMVC ResponseBody返回字符串带双引号解决

今天在springmvc中返回字符串结果都是带双引号 最后经过测试后发现是因为string类型在输出后经过了json编码,所以带了双引号。 解决方法:在json转换之前先进行string转...
  • keketrtr
  • keketrtr
  • 2017年03月23日 13:54
  • 4119

SpringMvc 返回json的三种方式

1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew。 如:  或者 同样要用jackson的jar包。 2、第二种使用JSON工具...
  • Fupengyao
  • Fupengyao
  • 2017年03月15日 13:15
  • 1756

spring mvc 返回字符串带双引号

spring mvc 返回字符串带双引号在spring mvc中没有直接使用默认配置,而是另外配置了json解析器代码块 ...
  • flushest
  • flushest
  • 2016年10月08日 13:23
  • 4509

去除spring mvc返回字符串时的引号

1.关键配置: org.springframework.http.converter.StringHttpMessageConverter 2.具体位置: 文件:spring-servlet.x...
  • Hxuejie
  • Hxuejie
  • 2017年01月11日 16:43
  • 1319

Spring MVC返回json字符串时数据格式化

在运用Spring MVC框架开发时,可以直接在方法上添加注解 @ResponseBody 返回JSON数据,如果javabean的属性中包含Date日期类型的数据,默认的转换格式并不是我们想要的 y...
  • ystyaoshengting
  • ystyaoshengting
  • 2016年04月18日 17:36
  • 1801

springmvc 返回json的几种实现方法

【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1:http://www.cnblogs.com/ssslinppp/p/4528892.html 【Spring学习笔记-...
  • asdfsadfasdfsa
  • asdfsadfasdfsa
  • 2016年09月06日 12:19
  • 6730

SpringMVC返回字符串去掉引号

在springMVC中使用@ResponseBody注解时会强制返回json格式,在返回字符串时会默认加上双引号。去掉引号可以在springMVC配置文件中加入如下配置项:...
  • u013268066
  • u013268066
  • 2016年06月07日 14:37
  • 5298
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Springmvc返回json 字符串的其他方式
举报原因:
原因补充:

(最多只允许输入30个字)