有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用Jackson反序列化自引用对象

我有一个类似这样的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

谢谢你的帮助


共 (1) 个答案

  1. # 1 楼答案

    没有完全注释性的方法来实现这一点,因此需要定制JsonSerializer/JsonDeserializer。Jackson 1.9添加了two new features,这可能有助于:

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

    然而,我不是100%确定如何结合这两个功能的具体使用情况