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

Android中如何解析此类JSON输出?

Android解析目标JSON的实操步骤

嘿,我来教你在Android上解析这个特定的JSON结构!咱们用Android系统自带的org.json库就能搞定,不用额外引入第三方框架,步骤超清晰:

1. 先准备JSON字符串

首先你需要把接口返回的JSON内容转换成字符串形式,比如:

String jsonResponse = "[ { \"hit\": \"1\" }, { \"SUM(hit)\": \"196290\" }, { \"COUNT(id)\": \"4010\" } ]";

如果你的项目用了Java 15及以上版本,也可以用原始字符串字面量来避免转义引号,写起来更舒服:

String jsonResponse = """
    [ { "hit": "1" }, { "SUM(hit)": "196290" }, { "COUNT(id)": "4010" } ]
""";

2. 解析JSON数组与对象

接下来就是核心的解析逻辑了,我们先把字符串转成JSONArray,然后遍历数组里的每个JSONObject,根据键名取出对应的值:

try {
    // 将字符串转换为JSON数组
    JSONArray jsonArray = new JSONArray(jsonResponse);
    
    // 遍历数组中的每个JSON对象
    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject itemObject = jsonArray.getJSONObject(i);
        
        // 逐个判断对象中的键,取出对应值
        if (itemObject.has("hit")) {
            String hitStr = itemObject.getString("hit");
            // 如果需要数字类型,可转换为int:int hit = Integer.parseInt(hitStr);
            Log.d("JSON解析结果", "hit: " + hitStr);
        } else if (itemObject.has("SUM(hit)")) {
            String sumHitStr = itemObject.getString("SUM(hit)");
            // 转换为长整型更合适,因为数值较大:long sumHit = Long.parseLong(sumHitStr);
            Log.d("JSON解析结果", "SUM(hit): " + sumHitStr);
        } else if (itemObject.has("COUNT(id)")) {
            String countIdStr = itemObject.getString("COUNT(id)");
            // 转换为int:int countId = Integer.parseInt(countIdStr);
            Log.d("JSON解析结果", "COUNT(id): " + countIdStr);
        }
    }
} catch (JSONException e) {
    // 必须捕获解析异常,避免APP崩溃
    e.printStackTrace();
    Log.e("JSON解析错误", "解析失败原因:" + e.getMessage());
}

3. 几个关键注意点

  • 类型转换:JSON里的所有值都是字符串类型,如果你需要数字类型(比如统计数值),一定要手动转换,记得处理可能的NumberFormatException哦。
  • 异常处理:JSONException必须捕获,比如JSON格式错误、键名拼写错误、值的类型不匹配等情况都会触发这个异常,千万别漏掉。
  • 第三方库可选:如果你项目里已经用了Gson、Moshi这类库,也可以用它们来解析,但对于这种简单结构,系统自带的org.json完全够用,不用额外加依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:45:29