【问题标题】:@JsonIgnore vs @JsonBackReference in infinite recursive loop无限递归循环中的@JsonIgnore vs @JsonBackReference
【发布时间】:2017-07-30 14:34:03
【问题描述】:

我想知道这两个注释之间的主要区别是什么?两者都是为了解决无限递归循环问题。但是在示例中

Difference between @JsonIgnore and @JsonBackReference, @JsonManagedReference

@varren 展示了@JsonBackReference 的用法,我认为他也创建了无限递归循环。此外,当我尝试使用@JsonBackReference 时,它还会创建一个与@JsonIgnore 相比的递归循环?那么我们如何管理无限循环的情况才能使用@JsonBackReference呢?

【问题讨论】:

  • 仔细查看 varren 的回答中的实际对象:只有单个 Player 对象 (Player@914) 和单个 Info 对象 (Info@915)。也请从该问题中删除您的答案。
  • 我删除了它,但你的回答对我没有任何意义。你能用不同的词写吗?
  • 我还能怎么形容呢?没有无限递归,因为在反序列化 {id: 1, info: {id: 1}} 后,Player 和 Info 都只有一个实例。如果存在无限递归,该示例将产生它,给出错误而不是这两个对象。 Q.E.D.
  • 但是下面的第二张图片呢,但是使用 JsonManagedReference + JsonBackReference 我们将在那里获得信息参考?它调用一次 PLayer 一次 Info 一次,一次 Player 一次 Info 等等 - 它看起来不是一个不定式循环吗?
  • 在第二张图片上,只有 一个 实例 Player@914 和只有 一个 实例 Info@915。它们都相互引用,并且调试器图像显示 如果 您盲目地跟踪链接,您将进入无限递归,但我们没有,因为 @JsonManagedReference + @JsonBackReference 工作.

标签: java json loops recursion jackson


【解决方案1】:

@M。普罗霍罗夫 好的,那我的情况呢,我放了这两个注释并得到类似的东西:

【讨论】:

  • 检查响应中提供的 JSON 是否存在语法问题。我假设有一条错误消息
猜你喜欢
  • 2014-10-13
  • 2016-10-06
  • 2021-11-15
  • 1970-01-01
  • 2012-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-08
相关资源
最近更新 更多