Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jersey POST方法参数作为类对象_Java_Json_Jersey - Fatal编程技术网

Java Jersey POST方法参数作为类对象

Java Jersey POST方法参数作为类对象,java,json,jersey,Java,Json,Jersey,我已经使用jersey一段时间了,我刚刚实现了一个POST方法,该方法使用Json作为参数。但是,我希望它的功能如下: // The json class to be used and returned @XmlRootElement public class Container { private boolean isOk; private String message; public Container() {}

我已经使用jersey一段时间了,我刚刚实现了一个POST方法,该方法使用Json作为参数。但是,我希望它的功能如下:

 // The json class to be used and returned
    @XmlRootElement
    public class Container 
    {
        private boolean isOk;
        private String message;

        public Container() {}

        public boolean getOk()
        {
            return this.isOk;
        }   

        public void setOk(boolean isOk)
        {
            this.isOk = isOk;
        }
    }

    // A service
    @Path("json/test")
    public class TestService 
    {
        @POST
        @Consumes(MediaType.APPLICATION_JSON)
        @Produces(MediaType.APPLICATION_JSON)
        public Container readAndReturnMessage(Container receivedJson)
        {
            doSomething(receivedJson.getMessage());
            return receivedJson;
        }   
    }

不幸的是,这不起作用。所有容器变量都为null,即使传递给服务的原始json没有任何错误。这里的方法是什么,我是否需要使用字符串作为参数,并使用Jackson/Gson进行反序列化?

为您的
容器添加getter和setter

upd。是用于创建JavaBean的转换。见namings一节。顺便说一下,我在布尔字段方面失败了。最好的方法是:

boolean ok;

public boolean isOk(){
   return this.ok;
}

/* if setter is required */
public setOk(boolean ok){
   this.ok = ok;
}

如果您没有添加任何标题,则需要在POST请求中添加内容类型标题。 因为,您的应用程序正在使用需要添加的application/json 内容类型:应用程序/json与您的POST请求

如果您的请求正文的格式为: { “容器”:{ “isOk”:“true”, “消息”:“新消息” } } 您将获得空值

请求机构的形式应为: { “isOk”:“true”, “消息”:“新消息” }
这很好。

对不起,这里有getter和setter。我忘了添加它们。如果变量名是
isOk
,那么getter必须是
getIsOk()
和setter`setIsOk(boolean isOk)在这种情况下,变量真的依赖于它们的getter和setter吗?