实际上我的JSON如下:

如果用以下代码:JVM的内存直接飙到内存溢出,报错OutOfMemoryError: Java heap space

Object oo = JSON.parseArray(json, TestVo.class)

如果我换成了这样,就没事:

Object oo = JSON.parseObject(json, List.class)

看了一下源码发现是这一段出了问题:

因为 this.itemObjectReader != null,所以一直没有执行jsonReader.readString(),导致while无限循环直到内存溢出。

解决方式:换了一个写法

List<Object> oo = JSON.parseObject(json, List.class) ;
List<TestVo> vos=new ArrayList<>();
for (Object obj:oo){
     TestVo ee= JSON.parseObject( JSON.toJSONString(obj),TestVo.class);
     vos.add(ee);
}

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐