1

我有以下类构造创建循环依赖项。一般来说,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();

是否可以在映射器上全局配置 id 生成?

4

1 回答 1

1

没有。由于不是所有类型都可以有 ids(只有 POJO 类型,即Collections、Maps 和数组除外),并且由于细节可能会有所不同,因此没有与类型 ids 不同的“默认 id”设置。

于 2013-04-26T17:14:00.243 回答