优雅的遍历JSONArray,获取里面的数据

最近看到有个同事在遍历json数组的时候,用for循环写了一层有一层,那么是否有简便的写法呢?当然有了,下面就有用流的行驶,优雅的遍历数组,获取我们想要的数据

bash 复制代码
public static void main(String[] args) {
    String structure = "[{\"key\":\"111\",\"isRequired\":true,\"isNumber\":true,\"isFixed\":true},{\"key\":\"2\",\"isFixed\":true},{\"key\":\"3\",\"isNumber\":true},{\"key\":\"4\",\"isRequired\":true}]";
    JSONArray jsonArray;

    try {
        jsonArray = JSON.parseArray(structure);
    } catch (JSONException e) {
        System.err.println("Invalid JSON format: " + e.getMessage());
        return;
    }

    List<String> unitList = Optional.ofNullable(jsonArray)
            .orElse(new JSONArray())
            .stream()
            .filter(item -> item instanceof JSONObject)
            .map(item -> {
                JSONObject jsonObject = (JSONObject) item;
                String key = jsonObject.getString("key");
                return key;
            })
            .collect(Collectors.toList());

    System.out.println(unitList);
}
相关推荐
java1234_小锋4 分钟前
Spring AI 2.0 开发Java Agent智能体 - 对话与提示词工程(Prompt)
java·人工智能·spring
Frank_refuel18 分钟前
C++之STL->string类的使用和实现
java·开发语言·c++
小凡子空白在线学习22 分钟前
工作拆分so总结
java·jvm·算法
手揽回忆怎么睡27 分钟前
java打包无效的发行版:xx,临时修复当前窗口指定 JDK21
java·开发语言
一直有一个ac的梦想37 分钟前
cmu15445 2025fall lec15 query optimiaztion Pt1
java·服务器·数据库
郝学胜-神的一滴38 分钟前
干货版《算法导论》03:动态数组 × 链表的极致平衡艺术
java·数据结构·c++·python·算法·链表
SamDeepThinking40 分钟前
IntelliJ IDEA 中有什么让你相见恨晚的技巧?
java·后端·程序员
SamDeepThinking42 分钟前
为什么选微服务而不是动态扩容单体
java·后端·架构
小新同学^O^1 小时前
初步了解--> SpringCloud
java·学习·spring·spring cloud
ch.ju1 小时前
Java程序设计(第3版)第二章——函数的递归
java·开发语言