Java jacksonjson:实现TypeIdResolver

Java jacksonjson:实现TypeIdResolver,java,types,jackson,resolver,Java,Types,Jackson,Resolver,我目前正在设计基本API,以便在我的应用服务器中使用静态数据,我选择Jackson作为序列化数据的方法。问题是,我不希望在最终的JSON文件中有任何嵌套,因此我最终得出以下结论: @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id") public class Parent { public long id; public String name;

我目前正在设计基本API,以便在我的应用服务器中使用静态数据,我选择Jackson作为序列化数据的方法。问题是,我不希望在最终的JSON文件中有任何嵌套,因此我最终得出以下结论:

@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
public class Parent {
    public long id;
    public String name;

    @JsonIdentityReference(alwaysAsId = true)
    @JsonManagedReference
    public Set<Child> children = new HashSet<>();
}

@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
public class Child {
    public long id;
    public String name;

    @JsonIdentityReference(alwaysAsId = true)
    @JsonBackReference
    public Parent parent;
}

public static class Registry {
    public Set<Parent> parents = new HashSet<>();
    public Set<Child> children = new HashSet<>();
}
但现在,我想反序列化它,但不幸的是,引发了一个异常:
无法解析对象Id[2](对于[simple type,class org.photon.Main$Child])
。经过一些研究,我被告知我必须实现一个自定义类型id解析器,但由于缺乏资源,我什么都做不了。我想告诉Jackson在反序列化注册表时如何获取父对象到子对象和子对象到父对象的实例


您知道如何解决这个问题,或者有其他方法吗?

嵌套JSON文件会对您造成什么限制?我不太熟悉Jackson反序列化课程的方式,但我的猜测是,它不知道如何在没有自定义解析程序实现的情况下将子集合解析回对象图。我也这么猜测,但由于缺乏资源,我不知道如何正确实现自定义类型id解析程序,因此我正在问一些Jackson“专家”如何才能做到这一点。
{
    "parents" : [ {
        "id" : 1,
        "name" : "DADDY",
        "children" : [ 1, 2 ]
    } ],
    "children" : [ {
        "id" : 1,
        "name" : "JUNIOR"
    }, {
        "id" : 2,
        "name" : "JUNIOR'S SISTER"
    } ]
}