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

如何从JSON响应中获取id字段的值?附Java代码尝试

如何从JSON响应中提取id值存入变量?

首先来看你的JSON响应:

{ 
  "Events": [ 
    { 
      "id": 239, 
      "EventTitle": "Summer Holidays", 
      "EventURL": "", 
      "EventURLAgency": "no" 
    } 
  ] 
}

你的代码里存在一个核心错误:Events是JSON数组(用方括号[]包裹),但你尝试用json.getJSONObject("Events")去获取它——这会直接抛出异常,因为这个键对应的值并不是单个JSON对象。

修正后的代码

try {
    JSONObject json = new JSONObject(response);
    // 先获取"Events"对应的JSON数组
    JSONArray eventsArray = json.getJSONArray("Events");
    // 从数组中取出第一个对象(数组仅包含一个元素,索引从0开始)
    JSONObject eventObject = eventsArray.getJSONObject(0);
    // 根据id的数值类型,用getInt提取更合适;如果需要字符串形式,改用getString即可
    int eventId = eventObject.getInt("id");
    // String eventIdStr = eventObject.getString("id"); // 字符串版本
    Log.e("HOLLA", String.valueOf(eventId));
} catch (JSONException e) {
    // 必须捕获JSON解析异常,避免崩溃并排查问题
    e.printStackTrace();
    Log.e("JSON_PARSE_ERROR", "解析失败:" + e.getMessage());
}

关键说明

  • 明确Events的类型:它是数组,所以必须用getJSONArray()获取,不能用getJSONObject()
  • 数组索引从0开始:因为你的数组里只有一个元素,直接取索引0的对象即可
  • 选择合适的提取方法:JSON里的id是数字类型,用getInt()能直接拿到整数;如果需要字符串形式的ID,再用getString()
  • 异常处理:不要忽略JSONException,解析过程中可能出现键名错误、类型不匹配等问题,捕获异常便于调试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:49:42