Android Studio中如何从API返回的JSON获取正确的web_pages URL
解决Web Pages URL格式异常问题
问题根源
你当前用getString("web_pages")拿到的是整个JSON数组的字符串形式(比如["https://www.upes.ac.in/"]),而非可用的单个URL——因为API返回的web_pages是JSON数组类型,不是普通字符串类型。
修复后的代码
调整url的获取逻辑,从JSON数组中提取第一个元素:
public void onResponse(String response) { listaUniversidades = new ArrayList<>(); JSONArray jsonArray = new JSONArray(response); String nombreUni, pais, url; for (int i = 0; i < jsonArray.length(); i++) { JSONObject uniObj = jsonArray.getJSONObject(i); // 提前获取单个大学对象,减少重复调用 nombreUni = uniObj.getString("name"); pais = uniObj.getString("country"); // 处理web_pages数组 JSONArray webPagesArray = uniObj.getJSONArray("web_pages"); if (webPagesArray.length() > 0) { url = webPagesArray.getString(0); // 提取数组第一个元素作为可用URL } else { url = ""; // 兼容空数组场景,避免抛出异常 } texto.setText(url); listaUniversidades.add(new Universidad(nombreUni, pais, url)); } }
补充说明
- 增加了空数组判断,防止数组为空时触发
JSONException - 将单个大学的
JSONObject提前存入变量,优化代码可读性与执行效率
内容的提问来源于stack exchange,提问作者Sarrus
相关产品推荐
相关产品推荐

