使用 Java Stream 过滤 JSONArray 对象中的值
要使用 Stream 过滤 JSONArray 对象中的某个值,可以按照以下步骤进行操作:
- 将 JSONArray 对象转换为 Stream 对象,可以使用 JSONArray 的 stream() 方法。
- 使用 filter() 方法对 Stream 对象进行过滤,传入一个 Predicate lambda 表达式,用于判断某个元素是否符合过滤条件。
- 调用 collect() 方法将过滤后的元素收集到一个新的 List 或者其他数据结构中。
下面是一个示例代码,演示如何使用 Stream 过滤 JSONArray 对象中的某个值:
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
String jsonString = '[{"name":"John", "age":30}, {"name":"Alice", "age":25}, {"name":"Bob", "age":35}]';
JSONArray jsonArray = new JSONArray(jsonString);
// 使用 Stream 过滤年龄大于 30 的对象
List<JSONObject> filteredList = jsonArray.stream()
.map(obj -> (JSONObject) obj) // 将 Stream 中的元素转换为 JSONObject
.filter(obj -> obj.getInt('age') > 30) // 过滤年龄大于 30 的对象
.collect(Collectors.toList()); // 收集过滤后的元素到 List 中
// 输出过滤后的结果
for (JSONObject obj : filteredList) {
System.out.println(obj);
}
}
}
运行上述代码,将会输出年龄大于 30 的对象:
{"name":"John","age":30}
{"name":"Bob","age":35}
原文地址: http://www.cveoy.top/t/topic/qtWF 著作权归作者所有。请勿转载和采集!