3

我正在编写一个使用 Jersey 和 JAXB 的服务。我的类使用@XMLRootElement、@XMLElement 等进行了注释。我在两个类之间存在循环依赖关系,因此我使用@XMLTransient 对循环依赖属性进行了注释。因此,当我调用我的服务时,我将 xml 作为默认值,它运行良好。但是,当我尝试使用 JSON 时,我会得到重复的行,例如:

{"name":"dere","entries":[{"points":0,"wins":0,"losses":0,"ties":0,"leaderboard":{"name":"dere ","entries":[{"points":0,"wins":0,"losses":0,"ties":0,"leaderboard":{"name":"dere","entries":[ {"points":0,"wins":0,"losses":0,"ties":0,"leaderboard":{"name":"dere","entries":[{"points":0, "wins":0,"losses":0,"ties":0,"leaderboard":{"name":"dere"," ... 等等。

因此,当我使用 JSON 时,循环依赖似乎存在问题。我想避免循环依赖项出现在 JSON 输出中,就像它在 XML 中完成一样(因为 @XMLTransient 注释)。

任何人都可以提供有关我如何能够实现这一目标的任何见解吗?

4

2 回答 2

2

使用@JsonIgnore而不是@XmlTransient 来打破循环依赖。

我和你有类似的问题,这对我有用。

于 2009-11-02T18:07:58.903 回答
0

可能值得查看Kris Zyp 的 JSON 参考提案。它是专门为处理 JSON 数据中的多个引用和循环引用而发明的。

(注意:尽管有文章标题,但 Dojo 不是必需的。最初的提案在json.com上,但我目前无法访问该站点。)

不幸的是,你将如何在泽西岛实现这种技术是留给读者的一个练习。

于 2009-09-16T19:22:32.540 回答