大哥们,给菜鸟想想办法吧,求求了。

查看 79|回复 4
作者:yoloMiss   
问题是这个样子的:
自己写的一个 springboot 程序,接受其他业务系统的数据,60m ,但是由于一些要求数据中的某些字段要求被移除,这里我就非常“合理”的将数据转成 jsonobject ,然后再通过 new jsonarray 逐步获取里面的每一条数据,然后这个时候就又非常“合理”的 oom 了。
大概示例就是下面这个样子:
httpReponse res = httpUtil.get(url);
String resStr = res.getBody();
JSONArray arrayData = JSONArray.parse(resStr);
for(int i=0,i= 0; i--) {
JSONObject jsonData = arrayData.getJSONObject(i);
if(jsonData.has("key")) {
arrayData.remove(i);
}
}
```
请确保你的代码环境中的库方法与我的建议相匹配,不同的库可能有不同的方法名称和功能。

oom, jsonobject, resstr, jsonArray

blankmiss   
这不是问问 gpt 就能解决
yoloMiss
OP
  
httpReponse res = httpUtil.get(url);
String resStr = res.getBody();
JSONArray arrayData = JSONArray.parse(resStr);
我是建议你用迭代器写
Iterator it = arrayData.iterator();
while (it.hasNext()) {
JSONObject jsonData = (JSONObject) it.next();
if (jsonData.has("key")) {
it.remove();
}
}
blankmiss   
chunk
yoloMiss
OP
  
gpt 弄混了不同的 json 库,JSONObject 当然有 contains 方法,它实现了 Map 接口。你这里明显的问题是在遍历的时候删除元素,JSONObject 内部的实现不可预期,所以有可能是这块的问题。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部