如何使用 Spring Boot 在 Post 方法中传递 Json 数据?我想传递几个变量并在不同的 java 类中使用这些变量
Posted
技术标签:
【中文标题】如何使用 Spring Boot 在 Post 方法中传递 Json 数据?我想传递几个变量并在不同的 java 类中使用这些变量【英文标题】:how can i pass Json data in a Post method using spring boot? I want to pass few variables and use that variables in a different java class 【发布时间】:2019-07-02 12:50:52 【问题描述】:我对 Spring Boot 很陌生,正在尝试不同的东西。
我有一个类,其中一个方法进行简单计算,接受两个数字并给出加法。现在我想通过 api 以 json 格式传递数字并返回数字的加法。
我们可以在@POSTMapping
中传递变量并返回结果吗?
控制器类
@RestController
@RequestMapping(value="/TC")
public class CountSpringAppController
@Autowired
private CountService countService;
@PostMapping(value="/add/number1/number2")
public int getCount(@PathVariable int num1,@PathVariable int num2)
return countService.count(num1, num2);
`
服务等级
@Service
public class CountService
public int count(int num1, int num2)
return num1+num2;
输入
"num1":1,
"num2":1
输出
2
【问题讨论】:
***.com/q/29313687/7470253 【参考方案1】:创建一个接受 json 的 Num 类
Class Num
int num1;
int num2;
//getter setter
现在使用该类从 json 正文中获取数据
@RequestMapping(value="/add",method = RequestMethod.POST, consumes="application/json", produces = "application/json")
public int getCount(@RequestBody Num request)
return countService.count(request.getNum1(),request.getNum2());
`
【讨论】:
【参考方案2】:您可以执行以下操作。这样就不需要额外的数据类:
@PostMapping(value="/add")
public int getCount(@RequestBody Map<String, Integer> data)
return countService.count(data.get("number1"), data.get("number2"));
【讨论】:
以上是关于如何使用 Spring Boot 在 Post 方法中传递 Json 数据?我想传递几个变量并在不同的 java 类中使用这些变量的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Boot 中使用 multipart/form-data 处理没有 Content-Disposition 标头的 POST
如何使用 Postman 表单数据将 POST 请求发送到 Spring Boot REST API?
如何使用 Spring Boot 在 Post 方法中传递 Json 数据?我想传递几个变量并在不同的 java 类中使用这些变量
在 Spring-boot 中成功登录后如何限制 POST Rest Api 以供公共访问