我正在使用 Jersey 编写REST接口,并将其配置为使用JacksonXML执行JSON< - > POJO转换。我有一组这样的课程:
@JsonInclude(JsonInclude.Include.NON_NULL)
public class JsonPo {
public Long id;
public String type;
public Boolean committed;
public String owner;
// ...
我的主要类中引用了这样的内容:
@JsonInclude(JsonInclude.Include.NON_NULL)
public class JsonPoReq {
public Long id;
public String pathstring;
public int firstrecord;
public JsonPo obj;
// ...
REST资源当然是这样的:
@POST
@Path("path")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response byPath(JsonPoReq req) {
// ...
序列化(POJO-> JSON)工作正常。 JsonPo 对象中的属性会像您期望的那样在JSON对象中进行序列化。
反过来不起作用。即使我将序列化的字符串反馈回来。会发生什么是 obj 属性始终设置为 null 。
编辑:根据要求,以下是JSON字符串的样子:
{
"id" : 2,
"pathstring" : "/a/b/c",
"firstrecord" : 0,
"obj" : {
"id" : 2,
"type" : "ProtoObject",
"committed" : false,
"owner" : "admin"
}
}
我一直在浏览JacksonXML Annotations看看如何解决这个问题,但我无法想出任何东西。我应该采取其他措施吗?
更新:问题不是真的。正在调用一些应用程序代码,我没有注意到它正在清除对象。