关于Spring MVC3.X 接收和返回Json
最近开发项目时遇到此问题,解决后,特做下备忘:
1. javabean 1: Content.java
public class Content implements Serializable {
private static final long serialVersionUID = -8184052506726598065L;
private Integer id;
private Integer parentId;
private String msgType;
private Integer serial;
private String content;
getter and setter.............
}
javabean2: Blog.java
public class Blog implements Serializable {
private static final long serialVersionUID = 1844582159472756595L;
private List<Content> contents;
private Integer id;
private String sendModel;
private Date sendTime;
private String sinaUser;
private String type;
getter and setter.............
}
2. 页面Js: Send.js
function doSend(){ var account = $.trim($("#sinauser").val()); var message = this.checkform(); if(account!=""){ if(message){ //发送到后台的js对象[和javabean1和2的结构一致] var data = this.parseBlog(); //将js对象转成json对象[需jquery 的json插件] var json = $.toJSON(data);alert(json); $.ajax({ url:"/PEMP/rest/weibo/entrance.do", dataType:"json",//返回值类型Json processData: false, contentType: "application/json",//请求内容为Json type:"POST", async:false, data:json, success:function(data,textStatus){ var content=""; var error = ""; if(data && data.result){ content = data.data; $("#token").text(content); }else{ error = data.message; alert(error); } $("#result").html(content+error); $("#message").val(""); } }); } }else{ alert("请选择发送到的微博帐号!"); } }
3. java后台接收类: WeiboController.java
@Controller
@RequestMapping("/weibo")
public class WeiBoController {
@ResponseBody//返回值为Json类型[JsonResult为自己封装的Json类]
@RequestMapping(value = "/entrance.do", method = RequestMethod.POST)
public JsonResult weixinInterfacePost(HttpServletResponse response,
@RequestBody Blog blog//接收参数为Json类型
) throws Exception {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String error = "";
try{
......//写自己的处理逻辑
return JsonResult.SUCCESS;
}catch(Exception err){
err.printStackTrace();
}
return JsonResult.failure(error);
}
}