我正在使用Gson在应用程序中生成调试输出
Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
gson.toJson(myObject);
但是Gson确实抱怨在试图序列化数据结构时出现了循环引用错误。这可以用Jackson库来完成吗?
UPDGson 2.3.1版:2014年11月20日发布
Added support to serialize objects with self-referential fields. The self-referential field is set to null in JSON. Previous version of Gson threw a StackOverflowException on encountering any self-referential fields.
The most visible impact of this is that Gson can now serialize Throwable (Exception and Error)
2条答案
按热度按时间ql3eal8s1#
要使用Jackson进行序列化,请执行以下操作:
gjmwrych2#
Jackson可以用以下方法处理对象图中的循环:
@JsonIgnore
,其中完全省略属性@JsonManagedReference
和@JsonBackReference
的函数1.自定义序列化程序,它扩展
JsonSerializer
当您仍然希望提供有关对象的一些信息,但希望忽略某些字段(导致循环的字段)时,可以使用
JsonSerializer
。例如:然后,在序列化的类中,使用
@JsonSerialize
注解: