如何在Spring Rest Controller中访问普通的JSON主体?

具有以下代码:

@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 Rest Controller中访问普通的JSON主体? 的全部内容, 来源链接: utcz.com/qa/397344.html

回到顶部