SpringMVC 返回json

来源:互联网 发布:维棠下载器 mac版 编辑:程序博客网 时间:2024/06/14 08:41

1.页面传递json数据,ajax传递
jsp

<script type="text/javascript">    $(document).ready(function(){        $("#add").click(function(){            var userName = $("#userName").attr("value");            var age =$("#age").attr("value");            var user = {userName:userName,age:age};             $.ajax({                url:"/springMVC1/test/json/addUser",                type:"post",                data:user,                success:function(a){                    alert("userName:" + a.userName + "    age:" + a.age );                }            });         });     });</script></head><body>    姓名:<input type="text" id="userName" name="userName"><br>    年龄:<input type="text" id="age" name="age"><br>    <input type="button" id="add" value="添加"></body>

controller

@Controller@RequestMapping("/test/json")public class TestJson {    @RequestMapping("/addUser")//  /test/json/addUser    public void addUserJson(User user,HttpServletRequest request,HttpServletResponse response){        //{"username":"userName","age","age"}也可以用对象转化json类来实现        String result = "{\"userName\":\" "+ user.getUserName() +" \",\"age\":\" "+ user.getAge()+" \"}";        PrintWriter out = null;        response.setContentType("application/json");        try {            out = response.getWriter();            out.write(result);        } catch (IOException e) {            e.printStackTrace();        }    }

2.使用@RequestBody,@ResponseBody来传递json
1)需要引入2个包
jackson-core-asl-1.9.11.jar
jackson-mapper-asl-1.9.11.jar
2.springMVC 配置只要引入注解就OK< mvc:annotation-driven />

3页面配置

<script type="text/javascript">//请求json响应jsonfunction requestjson(){    $.ajax({        type:'post',        url:'${pageContext.request.contextPath }/jsonToJson',        contentType:'application/json;charset=utf-8',        data:'{"name":"李四","age":22}',//json串        success:function(data){            alert(data.name);                //有打印李四        }    });}//请求key/value响应jsonfunction responsejson(){$.ajax({        type:'post',        url:'${pageContext.request.contextPath }/KVToJson',        data:'name=李四&age=23',//key/value        success:function(data){            alert(data.name);            //有打印李四        }    });}</script><title>json测试 </title></head><body><input type="button" value="请求json 返回json" onclick="requestjson()"/><input type="button" value="请求key/value 返回json" onclick="responsejson()"/></body>

controller

    //请求json响应json    @RequestMapping("/jsonToJson")    public @ResponseBody User jsonToJson(@RequestBody User user)throws Exception{        //ResponseBody  将user转为json格式        //RequestBody    将json格式转为user        return user;    }    //请求key/value响应json    @RequestMapping("/KVToJson")    public @ResponseBody User KVToJson(User user)throws Exception{        //ResponseBody  将user转为json格式        return user;    }

3 对象转为json,返回给页面

        JSONObject jo=new JSONObject();        jo.put("bulidTree", bulidTree);//        StringUtil.StringToJson(jo.toString());        return StringUtil.StringToJson(jo.toString());public class ResponseUtils {    //发送内容      public static void render(HttpServletResponse response,String contentType,String text){        response.setContentType(contentType);        try {            response.getWriter().write(text);        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    //发送的是JSON    public static void renderJson(HttpServletResponse response,String text){        render(response, "application/json;charset=UTF-8", text);    }    //发送xml    public static void renderXml(HttpServletResponse response,String text){        render(response, "text/xml;charset=UTF-8", text);    }    //发送text    public static void renderText(HttpServletResponse response,String text){        render(response, "text/plain;charset=UTF-8", text);    }}
0 0