需要分解您的请求。首先,您要接受 JSON 字符串。所以在你的方法上你需要
@Consumes(MediaType.APPLICATION_JSON)
接下来,您需要决定您希望您的方法获得什么。您可以按照您的建议获取 JSON 字符串,在这种情况下,您的方法将如下所示:
@Consumes(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final String input) {
或者,如果您的 JSON 字符串映射到 Java 对象,您可以直接获取该对象:
@Consumes(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final MyObject input) {
您声明要返回 JSON 字符串。所以你需要:
@Produces(MediaType.APPLICATION_JSON)
然后你需要实际返回一个 JSON 字符串:
return "{\"result\": \"Hello world\"}";
所以你的完整方法看起来像这样:
@PATH("/hello")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final String input) {
return "{\"result\": \"Hello world\"}";
}
关于使用 AJAX 发送和接收,它看起来像这样:
var myData="{\"name\": \"John\"}";
var request = $.ajax({
url: "/hello",
type: "post",
data: myData
});
request.done(function (response, textStatus, jqXHR){
console.log("Response from server: " + response);
});