JSONArray遍历

本文详细解析了将JSON数组转化为List对象的过程,包括常见的错误及解决办法,通过实例演示了如何使用JSON.toJSON方法正确实现类型转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.需求描述:

需要把json数组JSONArray对象进行遍历、转换为List对象

二.需求分析:

1.首先我想到的是直接遍历,通过JSONObject对象获取指定k的v值

for (JSONObject a : jsonArray){

   list.add(a.get("k"))
}

但是编译异常,显示遍历对象必须是Object对象,我当时就懵逼了,json数组不是放json。。

2.查看源码:

实现的是List<Object>方法,醉了.....

3.尝试强制转型JSONObject,报错:

for (JSONObject a : jsonArray){
   JSONObject x = (JSONObject) a
   list.add(x.get("k"))
}

三.解决方法:

Object需要先转JSON,然后才能转JSONObject:  

JSON.toJSON

for (Object a : jsonArray){
   JSONObject x = (JSONObject) JSON.toJSON(a)
   list.add(x.get("k"))
}

或者:

List list = conditions.stream().map(obj -> {
            JSONObject jsonObj = (JSONObject) JSON.toJSON(obj);
            return jsonObj.getString("status");
        }).collect(Collectors.toList());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值