我有一个看起来像这样的 JSON 字符串(简化版):
[
{ "id":1, "friends":[2] },
{ "id":2, "friends":[1,3] },
{ "id":3, "friends":[] }
]
好友内容是列表中其他用户的id。
是否可以通过使用 Jackson 的数据绑定(bind)以某种方式从 JSON 创建一个像下面这样的 Java 类,或者我是否需要一个中间步骤?
public class User {
private long userid;
private List<User> friends;
// ... getters/setters
感谢您的帮助。
最佳答案
没有完全注释的方法来执行此操作,因此您需要自定义 JsonSerializer/JsonDeserializer。 Jackson 1.9 添加 two new features这可能有帮助:
- ValueInstantiators,因此您可以添加反序列化器的构造函数,以将基本整数转换为 POJO
- 值注入(inject),以便您可以传递额外的上下文对象(您需要找到已反序列化器对象的 ID,然后从整数映射到实例)
但是我并不是 100% 确定如何针对特定用例结合这两个功能...
关于java - 使用 Jackson 反序列化自引用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7771407/