关于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); } }