You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android新手求助:如何用Java循环获取API全部符合条件的记录

解决Android API调用仅拉取第一条记录的问题

嘿,作为准Android开发者遇到这种问题太正常了,别着急,咱们一步步来搞定它!

从你描述的情况来看——调试时能看到系统找到全部三条记录,但代码只打印第一条——大概率是你把返回的JSON数组当成单个JSON对象来处理了。你当前的代码里用了getJSONObject("report"),但如果API返回的report字段对应的是一个包含多条记录的数组(而不是单个对象),那这样只会取到数组里的第一个元素,自然就只输出第一条啦。

具体修正步骤:

  • 首先确认你的API返回的JSON结构,应该是类似这样的(调试里能看到三条,所以report是数组):
    {
      "report": [
        {"id": 1, "content": "第一条记录"},
        {"id": 2, "content": "第二条记录"},
        {"id": 3, "content": "第三条记录"}
      ]
    }
    
  • 修改你的代码,把获取单个JSONObject改成获取JSONArray,然后循环遍历数组里的每一条记录:
    try {
        JSONObject parentObject = new JSONObject(finalJson);
        // 把getJSONObject改成getJSONArray,因为report是数组
        JSONArray reportArray = parentObject.getJSONArray("report");
        
        // 循环遍历数组里的所有对象
        for (int i = 0; i < reportArray.length(); i++) {
            JSONObject reportObject = reportArray.getJSONObject(i);
            // 在这里处理每条记录,比如打印或者存储
            System.out.println("第" + (i+1) + "条记录:" + reportObject.toString());
        }
    } catch (JSONException e) {
        e.printStackTrace();
        // 别忘了处理JSON解析异常,比如字段不存在、格式错误等情况
    }
    
  • 额外提醒:如果API返回的report可能是空数组,记得在循环前判断reportArray.length() > 0,避免空指针或者无效循环。

这样修改后,你就能获取并打印所有三条记录啦,试试吧!

内容的提问来源于stack exchange,提问作者Deb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:47:38