码迷,mamicode.com
首页 > Web开发 > 详细

json infinite recursion stackoverflowerror

时间:2015-09-15 10:40:08      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

  昨天在公司平台上进行开发时遇到的问题,研究了一天才弄明白,具体情况如下:

  在controller返回数据到统一json转换的时候,出现了json infinite recursion stackoverflowerror的错误,即json在将对象转换为json格式的数据的时候,出现了无限递归调用的情况。

具体的情况如下:

  A类中,有个属性:List<B> b, A与B的关系为 OneToMany;在B类中,有属性A a,引用到A中的字段id,并作为外键。hibernate查询结果正常,可以看到返回的A对象中,有b参数值,但在json转换的时候就出现了无限递归的情况。个人分析,应该是json在序列化A中的b属性的时候,找到了B类,然后序列化B类,而B类中有a属性,因此,为了序列化a属性,json又得去序列化A类,如此递归反复,造成该问题。

解决:

  在B类中a的getter setter方法上加注解@JsonBackReference,其实自己试过只在setter方法上加@JsonBackReference也够了。

 

参考文章:

http://my.oschina.net/u/943437/blog/145246

json infinite recursion stackoverflowerror

标签:

原文地址:http://www.cnblogs.com/0x1E04/p/4809244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!