java - @Post 在 Rest 服务中接受 Json 值

标签 java rest tomcat jersey

我一直在努力学习@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/

相关文章:

java.lang.Thread.State : BLOCKED

java - Android: float 没有得到计算

java8如何创建嵌套列表?

eclipse - IllegalArgumentException:名为 [program] 和 [com.test.Servlet] 的 servlet 都映射到不允许的 url-pattern [/Servlet]

java - 从 java servlet 访问环境变量

java - LDAP:错误代码 49 - 简单绑定(bind)失败:NT_STATUS_LOGON_FAILURE

java - RESTful webservice 和 HttpServlet 的区别

azure - ARM REST API 中的多个资源过滤器

java - spring REST 的 400 错误请求

java - 如何从 Java 内部访问 jvmArgs?