性能问答>spring默认的jackson在返回数据时会出现了无限递归的情况>
5回复

spring默认的jackson在返回数据时会出现了无限递归的情况



大佬们,想请教一个问题。spring默认的jackson在返回数据时会出现了无限递归的情况,看了源码,是在com.fasterxml.jackson.databind.ser.BeanPropertyWriter里面出现的,加了注解,但是无效,原因是自引用。很神奇,jackson为spring官方指定的,不应该出现这样的错误啊,肯定是我用的不对,还请大佬们明示。数据结构不好变化,因为是对老代码的重构

786 阅读
请先登录,再评论

感谢@空无 帮我解决了问题,同时同步一下解决结果:hibernate的代理可能导致jackson注解@JsonIgnore失效,连带着,这些属性上的其他解决无限递归的注解也会失效,解决方式就是在类上面加上@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id"),可以解决这个问题。

9月前

本来是另外一个注解,但是看了上面,已经无效,这边加了之后还是无限,主要是我划的地方不会进去,导致了无限循环,我总觉得这是一个bug,但是大家都在用,肯定有解决方案,不过找了一个下午了,还是没能找到未命名文件.jpg

9月前
回复 社群问题小管家:

那个是处理self ref的,和circular ref不一样,user -> user这是self ref,user -> group - user这是circular ref

9月前回复
回复 大佬们的小马甲:

就是因为上面没拦住,本来按理来说,应该是return出去的,没能出的去,然后死循环了

9月前回复
回复 社群问题小管家:

你这debug看着没问题啊,bean和value不一样,没有self ref

9月前回复