实际上我的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);
}