我正在使用jackson 2.0序列化一个有自己引用的类。
Class A{
String identifier;
List<A> related;
}
我希望JSON看起来像这样:
{ identifier: "name",
related [ identifier: "related to name",
identifier: "also related to name"]
}
基本上我想要经历一次递归深度。我试过了
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
但是只有返回原始对象的链接才会停止递归。我该如何解决这个问题?
答案 0 :(得分:1)
Jackson 2.0身份处理旨在包含一个Object的第一个实例,并且只包含使用id的二次引用。
但您可以为“相关”字段定义自定义序列化程序(和反序列化程序),以使用不同的序列化样式:
@JsonSerialize(contentUsing=MyIdOnlySerializer.class) List<A> related;
并实施MyIdOnlySerializer
,以便只写出identifier
。