java fastjson JSONArray 根据某个值分组
在使用fastjson的JSONArray进行某个值的分组时,可以使用HashMap来实现。以下是一个示例代码:
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray();
jsonArray.add(createJSONObject("Alice", "A"));
jsonArray.add(createJSONObject("Bob", "B"));
jsonArray.add(createJSONObject("Alice", "C"));
jsonArray.add(createJSONObject("Bob", "D"));
jsonArray.add(createJSONObject("Charlie", "E"));
Map<String, List<JSONObject>> groupMap = new HashMap<>();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String key = jsonObject.getString("name");
if (!groupMap.containsKey(key)) {
groupMap.put(key, new ArrayList<>());
}
groupMap.get(key).add(jsonObject);
}
for (Map.Entry<String, List<JSONObject>> entry : groupMap.entrySet()) {
String key = entry.getKey();
List<JSONObject> groupList = entry.getValue();
System.out.println("Group " + key + ":");
for (JSONObject jsonObject : groupList) {
System.out.println(jsonObject);
}
System.out.println();
}
}
private static JSONObject createJSONObject(String name, String value) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", name);
jsonObject.put("value", value);
return jsonObject;
}
}
在上述示例代码中,我们首先创建了一个JSONArray对象,并添加了几个JSONObject对象,每个JSONObject对象都包含一个"name"和"value"属性。然后我们使用HashMap来进行分组操作,遍历JSONArray中的每个JSONObject对象,提取"name"属性作为分组的key,然后将当前JSONObject对象添加到对应的分组中。最后,我们遍历分组后的HashMap,打印出每个分组的内容。
运行以上代码,将会输出如下结果:
Group Alice:
{"name":"Alice","value":"A"}
{"name":"Alice","value":"C"}
Group Bob:
{"name":"Bob","value":"B"}
{"name":"Bob","value":"D"}
Group Charlie:
{"name":"Charlie","value":"E"}
可以看到,JSONArray根据"name"属性成功进行了分组
原文地址: https://www.cveoy.top/t/topic/hMSP 著作权归作者所有。请勿转载和采集!