我一直在努力学习@POST 来使用Jersey 创建网络服务。 我现在可以使用普通参数完全调整@Get 和@Post。 例如,
@POST
@Path("/{param}")
public Response postMsg(@PathParam("param") String msg) {
String output = "POST:Jersey say : " + msg;
return Response.status(200).entity(output).build();
}
但是,我不确定我应该如何接受 JSON 消息并通过 url 创建或处理它。
任何示例将不胜感激。
最佳答案
创建一个数据传输对象,用于处理从 UI 发送的 JSON 并直接使用它。 @Consume可以用来配置UI发送的数据类型格式可以是JSON或者Form提交等
@POST
@Path("/{param}")
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public Response postMsg(UserData userData) {
...
}
public class UserData {
private String userName;
private String userAddress;
...
define getter setter
}
// UI JSON call
var url = "rest/employee";
var type = "POST";
var data = {
userName : $("#txtEmpFirstName").val(),
userAddress : $("#txtEmpLastName").val(),
};
$.ajax({
type : type,
url : url,
data : JSON.stringify(data),
contentType: "application/json",
success : function(data) {
alert(data.Success);
resetEmployee();
searchEmployee();
}, error : function(error){ alert(JSON.stringify(error.responseText));}
});
关于java - @Post 在 Rest 服务中接受 Json 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176724/