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

Android开发解析嵌套JSON获取timings下指定字符串字段值

错误原因
  • 取值层级错误:Fajr/Dhuhr/Asr等时间字段都属于timings对象的子属性,不是data数组首元素的直接属性,你之前取Fajr时没有进入timings层级,自然拿不到值。
  • 类型判断错误:timings是键值对结构的JSON对象,不是数组,调用getJSONArray("timings")会直接触发类型不匹配报错;同时JSON对象是按键名取值,不能用数字索引访问,你把字符串"Dhuhr"转成int当索引的写法完全不符合JSON对象的取值逻辑。
正确实现代码

使用org.json标准库的话,按如下写法即可正常取值:

// 逐层获取到timings对象
JSONObject timingObj = response1.getJSONArray("data")
        .getJSONObject(0)
        .getJSONObject("timings");

// 直接按键名取对应字符串值
String mfajr = timingObj.getString("Fajr"); // 结果:03:11 (EET)
String mdhuhr = timingObj.getString("Dhuhr"); // 结果:11:53 (EET)
String masr = timingObj.getString("Asr"); // 结果:15:29 (EET)

小提示:如果无法保证接口一定返回对应时间字段,可以用optString("字段名", "默认兜底值")代替getString,避免字段缺失时抛出异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 18:57:25