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

