我正在使用SpringMVC 3.2.4,我希望使用Jackson2将对象序列化为JSON输出.
该对象具有递归属性.如果我尝试使用默认的Jackson ObjectMapper序列化它,我会收到一个递归错误.我意识到我可以@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class)
用来防止递归,但是,我实际上希望递归使得在胡子模板中更容易解析.但是,我想限制递归级别.
反正有没有指定杰克逊序列化器只递归1级?如果我需要创建自己的序列化程序,我可以注册它,使其仅用于特定的对象类吗?
正如一些评论所指出的那样,已经存在另一个与此问题非常密切相关的问题:Jackson JSON序列化,通过级别定义来避免递归.然而,在那个问题中,接受的答案(以及其他答案)都表明如何通过使用避免杰克逊的递归@JsonIdentityInfo
.在这种特殊情况下,我不打算限制它; 而我想要它.但是,我只想限制递归的深度.
此外,引用的SO问题提供了一些Jackson文档的链接; 我已经有了这些文档,但坦率地说杰克逊的文档非常缺乏.它们指示如何注册序列化程序,但不指示它是如何构造的.也没有任何迹象表明如何确定序列化器的递归级别.最后,没有迹象表明是否/如何在Spring中为Jackson注册序列化程序以应用于特定类型的类.