根据正在序列化的 class 修改对象序列化

Modify object serialization depending on what class is being serialized

所以我的目标是 return 一些对象作为来自 Spring REST 控制器的响应主体。问题是,这两个对象相互指向,有点像这样:

public class Person {
    private Set<Team> teams;
}

public class Team {
    private Set<Person> members;
}

如果我return这两个对象直接从一个控制器映射方法,生成的响应将是无限的并且可能会导致浏览器崩溃,因为成员集有人,每个人都有一组团队,依此类推,所有内容都会被 return 无限编辑。

我如何管理,而不是显示整个列表,比方说,成员,只显示每个成员的名字?

非常感谢任何帮助,谢谢!

如果您使用的是 jackson,那么您必须使用 jackson 提供的解决方案来解决您提到的问题。

  1. @JsonManagedReference
  2. @JsonBackReference

另请参阅此 link,这可能会有帮助: Infinite Recursion with Jackson JSON and Hibernate JPA issue,

还有 https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations#object-references-identity