要使用 Stream 过滤 JSONArray 对象中的某个值,可以按照以下步骤进行操作:

  1. 将 JSONArray 对象转换为 Stream 对象,可以使用 JSONArray 的 stream() 方法。
  2. 使用 filter() 方法对 Stream 对象进行过滤,传入一个 Predicate lambda 表达式,用于判断某个元素是否符合过滤条件。
  3. 调用 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}
使用 Java Stream 过滤 JSONArray 对象中的值

原文地址: http://www.cveoy.top/t/topic/qtWF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录