我正在尝试使用Jackson JSON序列化Javaparser对象,但它非常复杂,因为它是第三方库(我无法更改/注释代码),并且内部存在循环依赖。
我的项目结构如下:
对象Analysis
包含一些可能互相引用的WrappedNode
列表。每个WrappedNode
都包含一个JavaParser CallableDeclaration
。
当我尝试映射Analysis
时,我遇到了错误:
JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: com.github.javaparser.metamodel.PropertyMetaModel["containingNodeMetaModel"]->com.github.javaparser.metamodel.SimpleNameMetaModel["declaredPropertyMetaModels"]->java.util.ArrayList[0]->com.github.javaparser.metamodel.PropertyMetaModel["containingNodeMetaModel"]...
所以,为了摆脱无限递归,我知道我必须使用@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
,这是我在WrappedNode
类上做的,但我想我也应该使用{{3来注释JavaParser类}}
问题是有很多字段和很多类,我不知道要注释哪些。
感谢您的帮助!