生成json串的时候栈溢出的解决

2022-06-23 08:09:17

今天在做项目时产生了栈溢出的情况,java.lang.StackOverflowError: null
刚开始百度的时候说两个类相互持有对方的引用在重写toString方法的时候会出现栈溢出的情况,改了之后测试还是报错,说明在某个地方还是出现了栈溢出的情况。
debug一下之后发现我从数据库中可以取出来值,这就很奇怪了,取出来值返回给前台页面渲染就好了啊,为什么还报错,说明在把数据提交给前台的时候报出来栈溢出,查询资料发现是在我将list集合转成json对象的时候报错的。
原因如下:
Company实体类:
在这里插入图片描述
Position实体类:
在这里插入图片描述
如果Position类型的表中包含外键,而Position本身又与该外键对应的变量是多对一的关系,比如Position中有个com字段,多个Position变量可以对应一个com变量。那么在这种情况下:

JSONArray jsonMembers = new JSONArray(positionList);

这里会出现栈溢出错误:
java.lang.StackOverflowError
解决方案是:
我使用的是maven项目,先在pom文件中加入坐标:

<!-- Jackson Json处理工具包 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.5</version>
        </dependency>

然后在不想要转json的字段上加上一个注释

在这里插入图片描述
就可以解决了

  • 作者:小希一夏
  • 原文链接:https://blog.csdn.net/weixin_42454678/article/details/103129674
    更新时间:2022-06-23 08:09:17