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

Swift新手解析aqicn.org接口JSON遇keyNotFound错误求助

解决Swift解析AQI JSON数据的问题

问题根源

你定义的模型结构是正确的,但解码函数存在关键错误:直接将DataClass作为根对象解码,而实际返回的JSON根层级是包含data字段的Dust结构体,解码器在根层级找不到aqi字段,因此抛出keyNotFound错误。

修正后的解码函数

将解码目标改为Dust,再从嵌套的data属性中取出aqi值:

func parseDustJSON(_ dustData: Data) -> Int? {
    print(#function)
    do {
        let decodedDustData = try JSONDecoder().decode(Dust.self, from: dustData)
        return decodedDustData.data.aqi
    } catch {
        print(error)
        return nil
    }
}

额外验证建议

如果问题仍存在,可以先将返回的Data转为字符串打印,确认JSON结构确实符合以下格式:

{
  "data": {
    "aqi": 123,
    ...其他无关字段
  }
}

确保和你定义的Dust、DataClass结构完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:32:04