如何让JacksonXML反序列化嵌入式对象

时间:2018-01-20 02:54:53

标签: jackson jersey-2.0 jackson-databind

我正在使用 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看看如何解决这个问题,但我无法想出任何东西。我应该采取其他措施吗?

更新:问题不是真的。正在调用一些应用程序代码,我没有注意到它正在清除对象。

0 个答案:

没有答案