如何用循环引用json?

时间:2013-04-25 11:26:12

标签: java json serialization jackson

我有以下类构造创建循环依赖项。通常,Jackson库应该能够处理这些循环依赖。

我正在寻找一种不必在每个具有圆形性的类上使用注释的方法,但不知何故通常在ObjectMapper中配置它。

@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@id")
abstract class Shape;

class Line extends Shape {
    //a line can only connect 2 circles
    Circle from, to;
}

class Circle extends Shape {
    // a circle can have many lines connected
    List<Line> lines;
}

然后我序列化一个列表,其中包含circleslines

List<Shape> shapes;

    ObjectMapper om = new ObjectMapper().setDefaultTyping();

可以在mapper上全局配置id生成吗?

1 个答案:

答案 0 :(得分:1)

没有。由于不是所有类型都可以有id(只有POJO类型,即Collection s,Map和数组都没有出现),并且因为细节可能会有所不同,所以没有“默认id”设置不同于类型ids。