List<HashMap<String, Object>> list = tableData.stream() .flatMap(map -> map.values().stream()) .filter(value -> value instanceof JSONArray) 在jsonarray怎么找到含有"高:关键字"
时间: 2024-01-26 07:05:21 浏览: 165
可以在 `flatMap` 操作后使用 `filter` 操作来筛选包含特定关键字的 `JSONArray` 对象。可以使用 `JSONObject` 类的 `has` 方法来实现这一点,示例代码如下:
```
List<HashMap<String, Object>> list = tableData.stream()
.flatMap(map -> map.values().stream())
.filter(value -> value instanceof JSONArray)
.map(value -> (JSONArray) value)
.filter(jsonArray -> {
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.optJSONObject(i);
if (jsonObject != null && jsonObject.has("高:关键字")) {
return true;
}
}
return false;
})
.collect(Collectors.toList());
```
上述代码中,`map` 操作将 `JSONArray` 对象转换为 `JSONArray` 类型,然后使用 `filter` 操作筛选包含特定关键字的 `JSONArray` 对象。在 `filter` 操作中,通过循环遍历 `JSONArray` 中的每个元素,判断元素是否是 `JSONObject` 类型,并且是否包含指定的键,如果包含,则返回 `true`,否则返回 `false`。最终使用 `collect` 操作将符合条件的 `JSONArray` 对象收集到一个列表中。
阅读全文