关于springMVC处理json数据教程

本篇文章主要介绍了详解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的子集。

参考地址:www.jb51.net/article/35090.htm

后台代码:

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")@ResponseBodypublic 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时,该如何处理呢!

想做你的有缘人,可是我知道结果是惨淡的,但还是心存希望!

关于springMVC处理json数据教程

相关文章:

你感兴趣的文章:

标签云: