【问题标题】:Jackson 2.0 Cyclic Relationship杰克逊 2.0 循环关系
【发布时间】:2012-07-21 22:27:29
【问题描述】:

我正在使用 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")

但只有在有指向原始对象的链接时才会停止递归。我该如何解决这个问题?

【问题讨论】:

    标签: json spring-mvc annotations jackson


    【解决方案1】:

    Jackson 2.0 身份处理旨在按原样包含 Object 的第一个实例,并且仅包含使用 id 的辅助引用。

    但是您可以为您的“相关”字段定义自定义序列化器(和反序列化器),以使用不同的序列化样式:

    @JsonSerialize(contentUsing=MyIdOnlySerializer.class) List<A> related;
    

    并实现MyIdOnlySerializer,使其只写出identifier。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-24
      • 2013-04-11
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 2017-04-20
      相关资源
      最近更新 更多