我最近遇到了OP在这里描述的确切场景。下面是我的解决方案。使用JSOG(Javascript对象图)格式可以解决此问题。
服务器端使用Jackson-Jsog插件https://github.com/jsog/jsog-jackson 并使用以下注释对每个类进行注释。
@JsonIdentityInfo(generator=JSOGGenerator.class)
而不是
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@id")
这将以JSOG格式生成。(@id
和@ref
)
在客户端上,使用jsog.js
使用以下调用将JSOG结构转换为循环结构
cyclicGraph = JSOG.decode(jsogStructure);