java fastjson 数据为 JSONArray 类型将数据根据某个值 分组为数据最终为key=jsonarrayvalue=ListJSONArray的map数据
你可以使用Java的FastJSON库来实现将JSONArray数据根据某个值分组为key为JSONArray,value为List
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 = JSONArray.parseArray("[{\"id\":1,\"name\":\"Alice\"},{\"id\":2,\"name\":\"Bob\"},{\"id\":1,\"name\":\"Charlie\"}]");
// 分组字段
String groupBy = "id";
// 创建Map来存储分组数据
Map<JSONArray, List<JSONArray>> groupedData = new HashMap<>();
// 遍历JSONArray
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
// 根据分组字段获取分组值
JSONArray groupKey = new JSONArray();
groupKey.add(jsonObject.get(groupBy));
// 如果Map中已经存在该分组值,则将数据添加到对应的List中
if (groupedData.containsKey(groupKey)) {
groupedData.get(groupKey).add(jsonObject);
} else {
// 如果Map中不存在该分组值,则创建一个新的List,并将数据添加到List中
List<JSONArray> groupData = new ArrayList<>();
groupData.add(jsonObject);
groupedData.put(groupKey, groupData);
}
}
// 打印分组结果
for (Map.Entry<JSONArray, List<JSONArray>> entry : groupedData.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
}
}
运行以上代码,将输出以下结果:
Key: [1], Value: [{"id":1,"name":"Alice"},{"id":1,"name":"Charlie"}]
Key: [2], Value: [{"id":2,"name":"Bob"}]
这里使用了一个Map来存储分组数据,其中key为JSONArray类型,value为List
原文地址: https://www.cveoy.top/t/topic/hMTE 著作权归作者所有。请勿转载和采集!