3

我有一个看起来像这样的 JSON 字符串(简化):

[
  { "id":1, "friends":[2] },
  { "id":2, "friends":[1,3] },
  { "id":3, "friends":[] }
]

好友的内容是列表中其他用户的id。

是否有可能通过使用 Jackson 的数据绑定从 JSON 中创建一个类似下面的 Java 类,或者我是否需要一个中间步骤?

public class User {
  private long userid;
  private List<User> friends;
// ... getters/setters

谢谢你的帮助。

4

1 回答 1

0

没有完全注释性的方法可以做到这一点,因此您需要自定义 JsonSerializer / JsonDeserializer。Jackson 1.9 增加了两个可能有帮助的新特性:

  • ValueInstantiators,因此您可以为反序列化器添加构造函数以将基本整数转换为 POJO
  • 值注入,以便您可以传递额外的上下文对象(您需要找到已经反序列化器对象的 id,然后从整数映射到实例)

但是我不是 100% 确定如何将这两个功能结合起来用于特定的用例......

于 2011-10-15T17:24:14.520 回答