Java Fastjson JSONArray 按值分组:使用 HashMap 实现
{"title":"Java Fastjson JSONArray 按值分组:使用 HashMap 实现","description":"本文介绍使用 Java Fastjson 的 JSONArray 对象按某个值进行分组的方法。通过示例代码展示如何利用 HashMap 将 JSONArray 中的 JSONObject 对象根据“name”属性分组,并输出分组后的结果。","keywords":"Java, Fastjson, JSONArray, 分组, HashMap, JSONObject, 示例代码","content":"在使用 Fastjson 的 JSONArray 进行某个值的分组时,可以使用 HashMap 来实现。以下是一个示例代码:\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 = new JSONArray();\n jsonArray.add(createJSONObject("Alice", "A"));\n jsonArray.add(createJSONObject("Bob", "B"));\n jsonArray.add(createJSONObject("Alice", "C"));\n jsonArray.add(createJSONObject("Bob", "D"));\n jsonArray.add(createJSONObject("Charlie", "E"));\n\n Map<String, List<JSONObject>> groupMap = new HashMap<>();\n for (int i = 0; i < jsonArray.size(); i++) {\n JSONObject jsonObject = jsonArray.getJSONObject(i);\n String key = jsonObject.getString("name");\n if (!groupMap.containsKey(key)) {\n groupMap.put(key, new ArrayList<>());\n }\n groupMap.get(key).add(jsonObject);\n }\n\n for (Map.Entry<String, List<JSONObject>> entry : groupMap.entrySet()) {\n String key = entry.getKey();\n List<JSONObject> groupList = entry.getValue();\n System.out.println("Group " + key + ":");\n for (JSONObject jsonObject : groupList) {\n System.out.println(jsonObject);\n }\n System.out.println();\n }\n }\n\n private static JSONObject createJSONObject(String name, String value) {\n JSONObject jsonObject = new JSONObject();\n jsonObject.put("name", name);\n jsonObject.put("value", value);\n return jsonObject;\n }\n}\n\n\n在上述示例代码中,我们首先创建了一个 JSONArray 对象,并添加了几个 JSONObject 对象,每个 JSONObject 对象都包含一个"name"和"value"属性。然后我们使用 HashMap 来进行分组操作,遍历 JSONArray 中的每个 JSONObject 对象,提取"name"属性作为分组的 key,然后将当前 JSONObject 对象添加到对应的分组中。最后,我们遍历分组后的 HashMap,打印出每个分组的内容。\n\n运行以上代码,将会输出如下结果:\n\n\nGroup Alice:\n{"name":"Alice","value":"A"}\n{"name":"Alice","value":"C"}\n\nGroup Bob:\n{"name":"Bob","value":"B"}\n{"name":"Bob","value":"D"}\n\nGroup Charlie:\n{"name":"Charlie","value":"E"}\n\n\n可以看到,JSONArray 根据"name"属性成功进行了分组。
原文地址: https://www.cveoy.top/t/topic/pv1x 著作权归作者所有。请勿转载和采集!