AJAX发送json,SpringMVC 接收JSON,@RequestBody

需求:JQuery ajax前台,采用 POST请求 发送json,后台使用SpringMVC接收json并处理

前台:

$.ajax({

    url:"请求地址",

    type:"POST",//设置请求方式

    header:'Content-Type':'application/json; charset=utf-8',//设置前台发送数据格式(关注Content-Type,不同Content-Type对应SpringMVC处理方式不同,影响请求类型,故本特 别指明采用POST请求方式。具体Content-Type相关知识,需要在搜寻学习了)

    data:    JSON.stringify(param),

    ........

})

var param = {

     name:“ROLE_1”,

     permission:.....

}

通过JSON.stringify(param),将数据序列化为一个 JSON字符串,用于发送

      本文 JSON 数据例:

    1. name: "ROLE_1"
    2. permission: ["{"id":"1","name":"ROLE_HOME","url":"/home","description":"home"}",…]
      1. 0: "{"id":"1","name":"ROLE_HOME","url":"/home","description":"home"}"
      2. 1: "{"id":"2","name":"ROLE_ADMIN","url":"/sockiet","description":"ABel"}"                      

后台:

@ResponseBody
@RequestMapping(value="/savePermission",method=RequestMethod.POST)
public void savePermission(@RequestBody(required=true) JSONObject json) {
System.out.println(json);
}

注解@RequestBody 用于处理POST请求,以及application/json,平时ajax默认Content-Type为application/x-www-form-urlencoded,是以key-value方式发送数据。我们采用@RequestParam注解接收。

@RequestBody还可以处理其它请求类型数据,在SpringMVC中@RequestBody默认处理值就是 “application/json“  。该注解为关键,具体注解其余知识,需要自己学习了。

此处采用JSONObject json接收数据。此外还可以采用实体接收等。

以上就完成了一个简单的前台发送JSON,后台接收并处理的功能。

 

posted @ 2019-03-11 12:10  dev1ce  阅读(1813)  评论(0编辑  收藏  举报