0

我正在尝试使用 RESTEasy 和 Jackson 对 Web 服务进行 POST 以进行 JSON 绑定。

我的客户端界面看起来像

@Produces("application/json")
@Consumes(value = MediaType.APPLICATION_JSON)
public interface MyClientProxy {

    @POST
    @Path("/messages/send")
    ClientResponse<FooResponse> send(@QueryParam("foo") Foo foo);    
}

对象 Foo 类似于:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo implements Serializable {

    @JsonProperty
    String bar;

    public String getBar() {
        return bar;
    }

    public void setBar(String bar) {
        this.bar = bar;
    }
}

但是现在当我运行测试时,我可以从服务器看到我得到的 POST 看起来像:

{
    "foo": "com.x.y.Foo@1d75249c"
}

为什么对象 Foo 没有正确序列化为 JSON?

4

1 回答 1

0

我认为您需要一个默认构造函数public Foo() {}

@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo implements Serializable {

    @JsonProperty
    String bar;

    public Foo() {}

    public String getBar() {
        return bar;
    }

    public void setBar(String bar) {
        this.bar = bar;
    }
}
于 2014-04-29T09:55:14.373 回答