作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
有以下代码:
@RequestMapping(value = "/greeting", method = POST, consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE)
@ResponseBody
public String greetingJson(@RequestBody String json) {
System.out.println("json = " + json); // TODO json is null... how to retrieve plain json body?
return "Hello World!";
}
尽管 json 在正文中发送,但 String json 参数始终为 null。
注意我不想要自动类型转换,我只想要普通的 json 结果。
这个例子有效:
@RequestMapping(value = "/greeting", method = POST, consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE)
@ResponseBody
public String greetingJson(@RequestBody User user) {
return String.format("Hello %s!", user);
}
也许我可以使用 ServletRequest 或 InputStream 作为参数来检索实际的正文,但我想知道是否有更简单的方法?
最佳答案
到目前为止我发现的最佳方法是:
@RequestMapping(value = "/greeting", method = POST, consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE)
@ResponseBody
public String greetingJson(HttpEntity<String> httpEntity) {
String json = httpEntity.getBody();
// json contains the plain json string
如果有其他选择,请告诉我。
关于spring - 如何在 Spring REST Controller 中访问普通的 json 主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17866996/
我是一名优秀的程序员,十分优秀!