Android Java中提取JSON多组robotAnswer数组存入嵌套ArrayList的实现
错误原因
- 集合结构定义不符合需求:你需要的是两层嵌套列表,外层存储每个
robotAnswer数组,内层存储单组robotAnswer的所有字符串,仅需ArrayList<List<String>>类型即可,你原有代码定义的三层嵌套集合ArrayList<ArrayList<List<String>>>属于冗余错误定义。 - 元素组装逻辑错误:原有代码遍历
robotAnswer时为每个单独字符串创建了子列表,导致每个字符串独立成为子元素,不符合「同一组robotAnswer的所有字符串存入同一个子列表」的要求。 - 重复添加逻辑错误:你在初始化时就提前将空的
robotText加入外层集合,还在每次添加单个字符串后重复把robotText加入外层集合,导致最终结果结构混乱、冗余。
修改后的代码
变量定义修改
// 外层总集合,每个元素对应一组robotAnswer的内容 private final ArrayList<List<String>> robotAnswerTotal = new ArrayList<>();
遍历逻辑修改
for (int j = 0; j < arrayBoot.length(); j++) { JSONObject data = arrayBoot.getJSONObject(j); // 按需保留你需要的其他字段解析逻辑 JSONArray robotArray = data.getJSONArray("robotAnswer"); // 为当前robotAnswer新建独立子列表 List<String> currentAnswerList = new ArrayList<>(); int arrSize = robotArray.length(); for (int i = 0; i < arrSize; i++) { currentAnswerList.add(robotArray.getString(i)); } // 整组解析完成后再加入外层总集合 robotAnswerTotal.add(currentAnswerList); }
最终robotAnswerTotal就是你需要的预期嵌套列表结构。
内容的提问来源于stack exchange,提问作者ahsen
相关产品推荐
相关产品推荐

