java ajax返回 Json 的 几种方式

原文:https://blog.csdn.net/qq_26289533/article/details/78749057

方式 1. : 自写代码转 Json 

需要  HttpHttpServletRequest request  HttpServletResponse response 

后台 :

@RequestMapping(value="/haha")

public string xxx { HttpHttpServletRequest request,HttpServletResponse response} 
{ JSONObject json =new JSONObject();
json.put("result"," success")
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
PrintWriter out = null;
out = response.getWriter();
out.write(json.toString()); 
}


前端 : 

$.ajax({
data : {
// userNameOrTel: $("#user").val(),
// password: $("#pwd").val()
},
type : "post", 
url : "admin/login/",
dataType : "json",
contentType : "application/json;charset=utf-8", 
async : false, //同步 异步
success : function(data) {
debugger; 
}
}
});


方式 2:  @ResponseBody 注解 

@ResponseBody 
@RequestMapping(value="/haha")
public Msg xxx {} 
{ return msg }

$.ajax({
data : {
// userNameOrTel: $("#name").val(),
// password: $("#pwd").val()
},
type : "post",
url : "haha",
dataType : "json",
//contentType : "application/json;charset=utf-8", // 区别在这里,不要加,不然接收不到请求参数
async : false, //同步异步
success : function(msg) {
debugger;}}});


方式 3 :  @RestController 注解 (此类里的所以方法返回值都是 Json) 

拓展知识  当遇到 ajax 请求参数必须是Json 格式的话如下 : 

前端 ajax :

data:JSON.stringify({'channelId':channelId}),
success:function(data){
alert(data.channelId);
},

contentType:'application/json;charset=utf-8'
后台 : 

@RequestMapping(value="/login",produces="application/json;charset=UTF-8") @ResponseBody public String test2() { } 
原文地址:https://www.cnblogs.com/jiangfeilong/p/11135055.html