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 

SpringMVC3的ResponseBody返回字符串(JSON)乱码问题解决

近日做一个小项目,用spring mvc 做到ajax请求获取jquery ztree 异步获取树返回json对象时出现了乱码,试了各种办法,查了各种资料,一开始以为是数据库的编码有问题,经测试没问题...

SpringMVC第三篇【收集参数、字符串转日期、结果重定向、返回JSON】

业务方法收集参数我们在Struts2中收集web端带过来的参数是在控制器中定义成员变量,该成员变量的名字与web端带过来的名称是要一致的…并且,给出该成员变量的set方法,那么Struts2的拦截器就...
  • hon_3y
  • hon_3y
  • 2017年07月21日 17:01
  • 426

SpringMVC ResponseBody返回字符串(JSON)乱码

SpringMVC的@ResponseBody注解可以将请求方法返回的对象直接转换成JSON对象,但是当返回值是String的时候,中文会乱码,原因是因为其中字符串转换和对象转换用的是两个转换器,而S...

SpringMVC返回json数据的三种方式

方式一:使用JSON工具将对象序列化成json,常用工具Jackson,fastjson,gson 利用HttpServletResponse,然后获取response.getOutputStre...

SpringMVC返回json数据的三种方式

1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew。 如:  或者 同样要用jackson的jar包。 2、...

SpringMVC返回json数据的三种方式

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

springMvc 将对象json返回时自动忽略掉对象中的特定属性的注解方式

1.注解使用在 类名,接口头上 @JsonIgnoreProperties(value={"comid"}) //希望动态过滤掉的属性   例   @JsonIgnoreProperti...
  • f112122
  • f112122
  • 2015年08月05日 21:54
  • 16819

SpringMVC返回json数据的三种方式

一.使用JSON工具将对象序列化成json,常用工具Jackson,fastjson,gson         利用HttpServletResponse,然后获取response.getOut...

springMVC注解方式返回json

springMVC注解方式返回json 1、建立Maven项目: junit junit 3.8.1 test org.springfra...

SpringMVC返回json数据的三种方式

1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew。 如:  或者 同样要用jackson的jar包。 2、...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Springmvc返回json 字符串的其他方式
举报原因:
原因补充:

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