我是快速编程的新手,我陷入了这个问题,解析我从“https://aqicn.org/api/”获得的 JSON 数据。
因为我想要的数据只是一个'aqi',所以我在下面做了一个超级简单的模型来解析JSON数据。 (也请参考下面附上的截图)
struct Dust: Codable {
let data: DataClass
}
struct DataClass: Codable {
let aqi: Int
}
此外,这是我收到的错误消息。
keyNotFound(CodingKeys(stringValue: "aqi", intValue: nil), Swift.DecodingError.Context(codingPath: [], debugDescription: "No value associated with key CodingKeys(stringValue: \"aqi\", intValue: nil) (\"aqi\").", underlyingError: nil))
好像我做的模型是错误的,但我不确定是什么问题。 我确实把 aqi 改成 String 再试了,还是报错。
这里有解码函数以防万一...
func parseDustJSON(_ dustData: Data) -> Int? {
print(#function)
do {
let decodedDustData = try JSONDecoder().decode(DataClass.self, from: dustData)
let dustData = decodedDustData
return dustData.aqi
} catch {
print(error)
return nil
}
}
}
如果有人能帮助我,我将不胜感激。
你需要通过
Dust.self
,而不是DataClass.self
。
let decodedDustData = try JSONDecoder().decode(Dust.self, from: dustData)
return decodedDustData.data.aqi