详解springMVC之与json数据交互方法
前台代码:
function channel(){ //先获取选中的值 var channelid = $("#channelid option:selected").val(); //来判断发送的链接 if(channelid ==2){ **需要注意地方 start** var schoolbannerinfo = { "img": channelid, "title": channelid, "info": channelid, "channelid": channelid }; **需要注意地方 end** $.ajax({ url:"ceshijson", type:"post", datatype:'json', **需要注意地方 start** contenttype:'application/json;charset=utf-8', data:json.stringify(schoolbannerinfo), **需要注意地方 end** success:function(data){ alert(data); }, error:function(xmlhttprequest, textstatus, errorthrown){ alert("error") alert(xmlhttprequest.status); alert(xmlhttprequest.readystate); alert(textstatus); } }); } }
加粗的部分是要注意的地方。
其中contenttype:'application/json;charset=utf-8'不能省掉,否则会报415错误。
毕竟我发送的是json字符串,得告诉服务器,来的数据是json数据。
json.stringify()是将javascript对象转换为json字符串
json.parse(jsonstr)是将json字符串转换为javascript对象
补充知识:json其实就是javascript的子集。
参考地址:
后台代码:
pojo类:
public class schoolbannerinfo { private integer id; private date createtime; private string img; private string title; private string info; private integer seq; private integer schoolid; private string type; private boolean enable; private string link; private string channelid; }
get与set方法自己生成,这个就不贴出来了。
controller中方法:
@requestmapping(value="/ceshijson",produces="application/json;charset=utf-8") @responsebody public schoolbannerinfo ceshijson(@requestbody schoolbannerinfo schoolbannerinfo) throws ioexception{ // map<string,object> map = new hashmap<string,object>(); // map.put("channelid", channelid); // objectmapper mapper = new objectmapper(); // channelid = mapper.writevalueasstring(map); return schoolbannerinfo; }
注意:
1、@requestbody不能省,因为前台发过来的数据是json数据,得用这个注解去解析该怎么接收这些数据给pojo类的对象。
2、因为我也要返回json数据。所以需要这个注解@responsebody,把java对象转换成json字符串
3、当使用@requestbody时,要求前台传过来的数据是json字符串。如果是json对象是会出错的。所以如果你前台data部分这么写:data:{“channelid”:2},这样是不行的。因为{“channelid”:2}是json对象,你需要再在外层加个引号'{“channelid”:2}'这样才行。
4、要是方法返回值为简单类型比如:string时,该如何处理呢!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: js基本知识
下一篇: C#中ArrayList的使用方法
推荐阅读
-
SpringMVC学习之json数据交互
-
springmvc之json数据交互
-
JavaScript数据结构之广义表的定义与表示方法详解
-
用Json实现PHP与JavaScript间数据交换的方法详解_PHP
-
Python中json格式数据的编码与解码方法详解
-
Python中json格式数据的编码与解码方法详解
-
Android之采用execSQL与rawQuery方法完成数据的添删改查操作详解
-
Android之采用execSQL与rawQuery方法完成数据的添删改查操作详解
-
用Json实现PHP与JavaScript间数据交换的方法详解
-
SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器