如何从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
相关产品推荐
相关产品推荐

