要根据 JSONArray 中的某个值进行分组,可以使用以下步骤:\n\n1. 首先创建一个 HashMap,用于存储分组结果,其中 key 为 jsonarray 的某个值,value 为 List。\n2. 遍历 JSONArray,获取每个 JSONObject。\n3. 从 JSONObject 中获取需要进行分组的值。\n4. 检查 HashMap 中是否已存在该分组的 key。\n\t- 如果存在,则将该 JSONObject 添加到相应的 value(List) 中。\n\t- 如果不存在,则创建一个新的 List,将该 JSONObject 添加到其中,并将该分组的 key 和 value 添加到 HashMap 中。\n5. 最后,HashMap 中的 key 就是分组的值,value 是该分组的所有 JSONArray。\n\n以下是一个示例代码:\n\njava\nimport com.alibaba.fastjson.JSONArray;\nimport com.alibaba.fastjson.JSONObject;\n\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\npublic class Main {\n public static void main(String[] args) {\n JSONArray jsonArray = JSONArray.parseArray("[{"name":"Alice", "age":20}, {"name":"Bob", "age":30}, {"name":"Alice", "age":25}]");\n\n Map<String, List<JSONArray>> groupedMap = new HashMap<>();\n\n for (int i = 0; i < jsonArray.size(); i++) {\n JSONObject jsonObject = jsonArray.getJSONObject(i);\n String key = jsonObject.getString("name");\n\n if (groupedMap.containsKey(key)) {\n groupedMap.get(key).add(jsonArray.getJSONArray(i));\n } else {\n List<JSONArray> list = new ArrayList<>();\n list.add(jsonArray.getJSONArray(i));\n groupedMap.put(key, list);\n } \n }\n\n // 打印分组结果\n for (Map.Entry<String, List<JSONArray>> entry : groupedMap.entrySet()) {\n System.out.println("Key: " + entry.getKey());\n System.out.println("Value: " + entry.getValue());\n System.out.println();\n }\n }\n}\n\n\n输出结果:\n\n\nKey: Alice\nValue: [[{"name":"Alice","age":20}],[{"name":"Alice","age":25}]]\n\nKey: Bob\nValue: [[{"name":"Bob","age":30}]]\n\n\n上述代码中,我们将 JSONArray 中的每个 JSONObject 按照 "name" 进行了分组,最后将分组结果存储在 groupedMap 中进行打印。你可以根据自己的需求,修改代码中的字段名和数据类型。\n


原文地址: https://www.cveoy.top/t/topic/pv1S 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录