【问题标题】:Getting JSON from Jersey with circular dependencies从 Jersey 获取具有循环依赖关系的 JSON
【发布时间】:2009-09-16 19:13:19
【问题描述】:

我正在编写一个使用 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"," ... etc.

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

谁能提供我如何实现这一目标的任何见解?

【问题讨论】:

    标签: json jersey circular-dependency


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      Kris Zyp's JSON Referencing proposal 可能值得一试。它是专门为处理 JSON 数据中的多个引用和循环引用而发明的。

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

      不幸的是,您将如何在泽西岛实施这项技术是留给读者的练习。

      【讨论】:

        猜你喜欢
        • 2014-09-06
        • 1970-01-01
        • 1970-01-01
        • 2020-11-22
        • 2016-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多