0

我正在使用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以了解如何解决此问题,但我无法提出任何建议。我应该采取其他步骤吗?

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

4

0 回答 0