Spring mvc 接收json对象
本文通过代码实例介绍springmvc接收json数据的方法,具体详情如下所示:
接收JSON
使用@RequestBody注解前台只需要向Controller提交一段符合格式的JSON,Spring会自动将其拼装成bean。
1)在上面的项目中使用第一种方式处理返回JSON的基础上,增加如下方法:
Java代码
@RequestMapping(value="/add",method=RequestMethod.POST,headers={"content-type=application/json","content-type=application/xml"}) @ResponseBody publicObjectaddUser(@RequestBodyUseruser) { System.out.println(user.getName()+""+user.getAge()); returnnewHashMap<String,String>().put("success","true"); }
这里的POJO如下:
Java代码
publicclassUser{ privateStringname; privateStringage; //gettersetter }
2)而在前台,我们可以用jQuery来处理JSON。从这里,我得到了一个jQuery的插件,可以将一个表单的数据返回成JSON对象:
Js代码
$.fn.serializeObject=function(){ varo={}; vara=this.serializeArray(); $.each(a,function(){ if(o[this.name]){ if(!o[this.name].push){ o[this.name]=[o[this.name]]; } o[this.name].push(this.value||''); } else{ o[this.name]=this.value||''; } }); returno; };
以下是使用jQuery接收、发送JSON的代码:
Js代码
$(document).ready(function(){ jQuery.ajax({ type:'GET', contentType:'application/json', url:'jsonfeed.do', dataType:'json', success:function(data){ if(data&&data.status=="0"){ $.each(data.data,function(i,item){ $('#info').append("姓名:"+item.name+",年龄:"+item.age); }); } }, error:function(){ alert("error") } }); $("#submit").click(function(){ varjsonuserinfo=$.toJSON($('#form').serializeObject()); jQuery.ajax({ type:'POST', contentType:'application/json', url:'add.do', data:jsonuserinfo, dataType:'json', success:function(data){ alert("新增成功!"); }, error:function(){ alert("error") } }); }); });
但是似乎用Spring这套东西真是个麻烦的事情,相对Jersey对RESTful的实现来看,确实有很多不简洁的地方。
以上所述是本文给大家分享的Springmvc接收json数据的相关资料,希望大家喜欢。