Java对象图到JSON转换,带循环

如何将Java对象图转换为JSON,其中图形具有循环依赖/循环?

有许多开源库可以生成JSON。 泽西岛可以打破循环依赖。 对于其他人,您可能想要谷歌。

  • Jersey (使用@JsonIgnore而不是@XmlTransient来打破循环依赖)
  • Gson (不支持循环引用。为此创建了一个开放缺陷 )
  • jackson ( 使用声明方法处理双向引用 )
  • flexjson (声称它支持循环引用)

注意:这个答案是很久以前写的。 使用Gson,Jersey或Jackson。

我在上一个项目中使用了json-simple 。 它不会引入任何不需要的项目依赖项(例如apache-commons jar),并且足以正确解析/生成JSON。

您仍然需要自己管理循环引用。 我真的怀疑是否有这样的库来构建来处理这个问题。 您可以通过添加到Set转换的任何对象来轻松完成此操作,然后只需检查您要转换的对象是否在集合中。

另外,我不认为json-simple会自动序列化一个对象; 也就是说,您必须将要添加到JSON的数据提供给它。 它只是处理所有杂乱的格式。

如果你使用fastxml。 有新的和调用选项@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class,property =“@ id”)

。 结帐以获取更多信息

只需确保你的quickxml在正确的版本中

不确定你的循环依赖是什么意思,JSON没有可能表达引用。 有很多开源JSON lib做了检查链接http://x-stream.github.io/json-tutorial.html将java对象转换为JSON