因此,我按照下面的Spring指南构建了一个简单的Rest服务。 https://spring.io/guides/gs/rest-service/
此刻,我可以使用Postman通过对URL http://localhost:8080/greeting的GET请求获取一些值
我现在想将其更改为POST请求,并从Postman发送一些JSON结构到我的控制器,并获取从Postman发送的元素,例如,在控制台中打印它们。我的控制器代码如下:
@RestController
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
return new Greeting(counter.incrementAndGet(), String.format(template, name));
}
}
假设我要发布JSON结构:
{
"header": {"name": "1234"},
"address": "someplace"
}
我将如何在Java代码中检索和打印address元素?
答案 0 :(得分:2)
只需为您的请求数据创建一个pojo,例如
public class RequestData {
Map<String,String> header;
String address;
}
和控制器方法
@PostMapping("/request")
public ResponseEntity postController(
@RequestBody RequestData requestData) {
System.out.println(requestData.address)
return ResponseEntity.ok(HttpStatus.OK);
}
答案 1 :(得分:0)
如果有效载荷的变化取决于要求,则可以使用Map代替POJO类。
@RequestMapping(value = "/greeting", method = RequestMethod.POST)
public String greeting(HashMap<String,Object> payload){
....
....
}