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数据的相关资料,希望大家喜欢。