如何使用 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 以供公共访问

Spring Boot - 如何在 HTTP Post api 中传递自定义值?

如何在 Spring Boot Api post 方法中接收自定义的 JSON 对象