Json格式转换报java.lang.StackOverflowError

本文探讨了栈溢出这一概念,特别是在使用SpringData和JPA进行对象关联时遇到的问题。当对象间存在相互引用导致无限递归时,会触发java.lang.StackOverflowError错误。文章分享了一个解决方案,通过封装类并忽略某些字段,成功避免了递归,解决了栈溢出问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

栈溢出就是缓冲区溢出的一种。 由于缓冲区溢出而使得有用的存储单元被改写,往往会引发不可预料的后果。程序在运行过程中,为了临时存取数据的需要,一般都要分配一些内存空间,通常称这些空间为缓冲区。如果向缓冲区中写入超过其本身长度的数据,以致于缓冲区无法容纳,就会造成缓冲区以外的存储单元被改写,这种现象就称为缓冲区溢出。缓冲区长度一般与用户自己定义的缓冲变量的类型有关。
栈溢出就是缓冲区溢出的一种,简单来说就是递归。
当我用SpringData+JPA做对象之间关联时,我一个对象跟另外一个对象的关系为一对多,当我向前端传数据时,转换json时就报了错误,就是java.lang.StackOverflowError,后来发现是因为两个对象之间都有引用,一直在无限转换,后来在后面经过封装类,将对象中的默写字段忽略掉。成功去除递归,具体怎么用属于机密,只给参考。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值