springmvc教程-@RequestBody 接收Json格式数据 作者:马育民 • 2020-06-12 17:27 • 阅读:10075 # 说明 前端使用 `POST` 方式发送 `json` 格式数据,并且指定 `Content-Type`是: ``` Content-Type: application/json;charset=utf-8 ``` springmvc接收数据时,形参需要 **对象类型**,且由 `@RequestBody` 注解修饰 # 例子 ### jquery 详见: https://www.malaoshi.top/show_1IX71XNeq3C3.html ### axios 以 `post` 方法发请求时,默认就是提交 `Json` 格式数据,详见: https://www.malaoshi.top/show_1IXIZt4apDp.html ### java ``` @RestController @Slf4j public class NoticeController { @PostMapping(value="/sendNotice") public CommonResult sendNotice(@RequestBody Notice notice){ noticeService.sendNotice(notice); log.info(String.format("%s 向 %s 发送通知成功!",notice.getFromUserid(),notice.getToUserid())); return new CommonResult(200,"成功!"); } } ``` ```` package top.malaoshi.entities; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; @Data @NoArgsConstructor @AllArgsConstructor public class Notice implements Serializable { private String id; private String fromUserid; private String toUserid; private String msg; } ``` ``` package top.malaoshi.json; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * json封装类 * 将执行成功、失败的信息封装成类,返回给前端json * @param */ @Data @NoArgsConstructor @AllArgsConstructor public class CommonResult{ private Integer code; private String msg; } ``` # 发送请求 ### postman [![](/upload/0/0/1EF5hAbvuNFv.png)](/upload/0/0/1EF5hAbvuNFv.png) **注意:** 上图中传递的是json格式 ### axios post 默认提交方式,详见下面链接: https://www.malaoshi.top/show_1IXIZt4apDp.html ### jquery 使用较少,下面代码微测试 ``` $.ajax( type:"POST", url:"test", data:'{"id":"12","name":"小明"}' success:function(msg){alert(msg);} contentType:"application/json;charset=utf-8" //关键 ) ``` ### 微服务 A 服务器 调用 B服务,传递json数据 原文出处:http://malaoshi.top/show_1EF5hAdgyMTy.html