Java JSONArray里面有很多JSONObiect 如何使用list stream 将JSONArTav按照某个属性值分为多组
时间: 2024-01-20 10:02:21 浏览: 254
假设你有一个 JSONArray 对象,其中包含多个 JSONObject 对象,每个 JSONObject 对象都有一个属性名为 "group",你想要将这些 JSONObject 对象按照 "group" 属性的值分组,可以使用 Java 8 的 Stream API 实现。
下面是实现的示例代码:
```java
JSONArray jsonArray = new JSONArray("["
+ "{\"name\":\"Jack\", \"group\":\"A\"},"
+ "{\"name\":\"Lucy\", \"group\":\"B\"},"
+ "{\"name\":\"Tom\", \"group\":\"A\"},"
+ "{\"name\":\"Jerry\", \"group\":\"B\"},"
+ "{\"name\":\"Mike\", \"group\":\"C\"}"
+ "]");
Map<String, List<JSONObject>> groupMap = jsonArray.stream()
.map(obj -> (JSONObject) obj)
.collect(Collectors.groupingBy(obj -> obj.getString("group")));
System.out.println(groupMap);
```
上述代码中,我们首先创建了一个 JSONArray 对象,其中包含了多个 JSONObject 对象。然后使用 Stream API 的 map 方法将 JSONArray 中的每个对象转换成 JSONObject 对象。接着使用 Collectors.groupingBy 方法,将 JSONObject 对象按照 "group" 属性的值分组,得到一个 Map<String, List<JSONObject>> 对象。最后通过打印输出的方式来展示分组结果。
上述示例代码中,我们使用了 JSONObject 对象作为示例,你可以将其替换成你自己的对象,并使用对应的属性和方法名来实现相应的分组操作。
阅读全文