您的位置:首页 > 编程语言 > Java开发

SpringMVC 返回json

2017-04-13 00:50 113 查看
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响应json
function 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响应json
function 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);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: