Spring Boot中PostMapping方法如何接收指定结构的JSON数据?
问题解答
方案一:自定义实体类(推荐)
创建一个与请求JSON结构完全匹配的Java实体类,Spring会自动将JSON数据绑定到该类的实例中:
public class SimRequest { private String id; private String num; // 必须提供无参构造方法,供Spring实例化对象 public SimRequest() {} // Getter和Setter方法,Spring通过这些方法注入属性值 public String getId() { return id; } public void setId(String id) { this.id = id; } public String getNum() { return num; } public void setNum(String num) { this.num = num; } }
修改后的控制器方法,???处填写SimRequest simRequest:
@RestController @RequestMapping("/validate") public class Validatesimapi { @PostMapping public Simoffers validateSim(@RequestBody SimRequest simRequest) { // 通过simRequest.getId()、simRequest.getNum()获取参数值 // 编写业务逻辑并返回Simoffers对象 return new Simoffers(); } }
方案二:使用Map<String, String>(临时场景适用)
如果只是临时测试或不需要实体类,也可以直接用Map<String, String>接收JSON参数:
@RestController @RequestMapping("/validate") public class Validatesimapi { @PostMapping public Simoffers validateSim(@RequestBody Map<String, String> requestMap) { String id = requestMap.get("id"); String num = requestMap.get("num"); // 编写业务逻辑并返回Simoffers对象 return new Simoffers(); } }
方案对比
- 实体类方案:类型安全、代码可读性强,便于后续扩展和维护,适合正式业务场景。
- Map方案:无需额外创建类,适合快速测试或临时需求,但缺乏类型校验,可读性较差。
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

