You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

处理JSONArray时如何修复ClassCastException异常?

修复JSONArray遍历中的ClassCastException问题

错误原因

  • 原代码错误地将JSONArray强制转换为Map<Integer, String>,org.json.JSONArray并非java.util.Map的子类,这种强转必然触发ClassCastException。
  • 使用Collectors.toSet()会破坏遍历顺序,因为Set集合不保证元素的有序性,不符合按顺序遍历的需求。

修复后的代码

JSONArray txnHashList = // 初始化JSONArray的逻辑

// 按顺序遍历JSONArray,将元素收集为有序的List
List<JSONObject> jsonObjectList = IntStream.range(0, txnHashList.length())
    .mapToObj(txnHashList::getJSONObject)
    .collect(Collectors.toList());

// List本身实现了Iterable接口,可直接作为Iterable使用
Iterable<JSONObject> jsonObjects = jsonObjectList;

补充说明

  • 直接调用JSONArray.length()获取元素个数,无需强转其他类型。
  • 如果不需要额外的List集合,也可以直接基于IntStream构建Iterable:
Iterable<JSONObject> jsonObjects = () -> IntStream.range(0, txnHashList.length())
    .mapToObj(txnHashList::getJSONObject)
    .iterator();

内容的提问来源于stack exchange,提问作者Raju Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 15:25:16