如何使用Spring Boot在Post方法中传递Json数据?我想传递几个变量,并在另一个java类中使用该变量

时间:2019-02-08 09:47:46

标签: java rest spring-boot spring-mvc

我是Spring Boot的新手,正在尝试其他事情。

我有一个类,其中一个方法可以进行简单的计算,接受两个数字并给出加法运算。现在我想将这些数字以json格式通过api传递并返回数字的加法运算。

我们可以在@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

2 个答案:

答案 0 :(得分:2)

制作一个将接受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());

    }`

答案 1 :(得分:0)

您可以执行以下操作。这样可以避免需要其他数据类:

@PostMapping(value="/add") 
public int getCount(@RequestBody Map<String, Integer> data) {

    return countService.count(data.get("number1"), data.get("number2"));

}