我试图用Jackson序列化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类上所做的,但我认为我也应该使用混合注释注释JavaParser类。
问题是有很多字段和很多类,我不知道该注释哪些字段和类。
谢谢你的帮助!
发布于 2017-07-06 07:39:34
您可以只使用由JsonPrinter提供的JavaParser类。这是一个非常新的添加(我认为是3.2.8版),它不可能完美,但你可以使用它超级,超级容易
https://stackoverflow.com/questions/44942307
复制相似问题