本文实例为大家分享了SpringMVC中controller返回json数据的2种方法,供大家参考,具体内容如下
1.jsp的ajax请求:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
function getJson(){
$.ajax({
type: "get" ,
dataType: "json" ,
url: "<%=basePath %>getJson" ,
success: function (data){
for ( var i=0;i<jsonData.length;i++){
alert( "Id:" +data[i].id+ " username:" +data[i].username);
}
},
error: function (e){
alert(e);
}
})
}
|
2.方法一:
使用springmvc原生注解@ResponseBody
1
2
3
4
5
|
@ResponseBody
@RequestMapping ( "/getJson" )
public Object getJson(){
return new Object();
}
|
注意:
1.@ResponseBody的作用:将目标方法的返回值自动转换成json格式,然后返回给前端
3.方法二:
使用手动写的json工具类
1
2
3
4
5
6
|
@RequestMapping ( "/getJson" )
public void getJson(HttpServletResponse response){
Object obj = new Object();
JSONObject json = JSONObject.fromObject(obj);
JsonUtils.ajaxJson(json.toString(), response);
}
|
附上JsonUtils工具类的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
public class JsonUtils {
public static void ajaxJson(String jsonString,HttpServletResponse response) {
ajax(jsonString, "application/json" ,response);
}
public static void ajax(String content, String type,HttpServletResponse response) {
try {
response.setContentType(type + ";charset=UTF-8" );
response.setHeader( "Pragma" , "No-cache" );
response.setHeader( "Cache-Control" , "no-cache" );
response.setDateHeader( "Expires" , 0 );
response.getWriter().write(content);
response.getWriter().flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/javafucker/p/7509346.html