@JsonIdentityInfo

时间:2018-10-23 10:16:17

标签: java android spring jackson

我正在对我的User类进行注释,以删除输出的循环格式:

@Entity
@Table(name = "USER")
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id", scope = User.class)
public class User extends AbstractValueObject {
    private Integer id;
    private String name;
 .....
}

public class Load extends AbstractValueObject {
    private Integer id;
    private User postedBy;
}

因此,每当我获取负载列表时,它都会为我提供如下JSON的输出:

[
  {
   "id" : 1,
   "postedBy" : {
                  "id":1,
                  "name":"SOF"    
                }
  },
  {
   "id" : 2,
   "postedBy" : 1
  }
]

但是客户端希望以原始格式使用它-说负载的每个对象都应包含完整的postedBy对象。客户端位于Android-Java中。

Android端是否有任何方法可以在Android上以原始格式反序列化对象?

预期输出:

   [
      {
       "id" : 1,
       "postedBy" : {
                      "id":1,
                      "name":"SOF"    
                    }
      },
      {
       "id" : 2,
       "postedBy" : {
                      "id":1,
                      "name":"SOF"    
                    }
      }
    ]

我尝试使用JSOG,但在某些情况下失败了。

任何帮助将不胜感激。 :)

1 个答案:

答案 0 :(得分:1)

您可以使用Jsog Converter,它提供了对对象进行编码和解码的库。 https://github.com/jsog/jsog[JSOG链接] [1]