优雅的遍历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);
}
相关推荐
云和数据.ChenGuang23 分钟前
Java装箱与拆箱(面试核心解析)
java·开发语言·面试
SimonKing24 分钟前
MyBatis的隐形炸弹:selectByExampleWithBLOBs使用不当,让性能下降80%
java·后端·程序员
海南java第二人29 分钟前
打破Java双亲委派模型的三大核心场景与技术实现
java·spring
天天摸鱼的java工程师30 分钟前
分布式 ID 生成终极方案:雪花算法优化与高可用实现
java·后端
沛沛老爹31 分钟前
2025年java总结:缝缝补补又一年?
java·开发语言·人工智能·python·guava·总结·web转型ai
艾迪的技术之路32 分钟前
【实践】2025年线上问题解决与总结-3
java
雨中飘荡的记忆33 分钟前
MyBatis参数处理模块详解
java·mybatis
Chloeis Syntax35 分钟前
MySQL初阶学习日记(7)--- 事务
java·数据库·笔记·学习·mysql
幽络源小助理37 分钟前
SpringBoot+Vue雅苑小区管理系统源码 | Java物业项目免费下载 – 幽络源
java·vue.js·spring boot
沛沛老爹38 分钟前
2025年Java发展现状与趋势:稳踞企业开发核心,云原生与AI集成成为新引擎
java·云原生·企业开发·发展趋势·java生态