在 Swift 中从 OpenWeatherMap 解析 JSON
Parsing JSON from OpenWeatherMap in Swift
我已经连接上了,但是我无法从天气数组中获取描述。因为它是 Array.
中的字典
{"weather":
[{"id":801,"main":"Clouds","description":"few clouds","icon":"02n"}]}
像这样获取温度效果很好:
if let main = item["main"] as? NSDictionary {
println("Main existe")
if let temp = main["temp"] {
println("Temp existe")
weatherRequested.append(temp.stringValue)
}
}
iOS 和 Swift 中默认的 JSON 解析很糟糕。我建议您使用 SwiftyJSON
库。这将使解析它变得像......
let result = JSON(jsonResult)
let weatherDesc = result["weather"]["description"].stringValue
let weatherTemp = result["main"]["temp"].stringValue
希望对您有所帮助!
你有误
if let item = jsonResult[0] as? NSDictionary {
jsonResult 是一个 NSDictionary 而不是数组。删除“[0]”并重试
我最终找到了解决方案:
if let item = jsonResult as? NSDictionary {
if let weather = item["weather"] as? NSArray{
if let value = weather[0] as? NSDictionary{
if let description = value["description"] as? String{
weatherRequested.append(description)
}
}
}
if let main = item["main"] as? NSDictionary {
if let temp = main["temp"] {
weatherRequested.append(temp.stringValue)
}
}
}
感谢所有试图帮助我的人! :)
我已经连接上了,但是我无法从天气数组中获取描述。因为它是 Array.
中的字典{"weather":
[{"id":801,"main":"Clouds","description":"few clouds","icon":"02n"}]}
像这样获取温度效果很好:
if let main = item["main"] as? NSDictionary {
println("Main existe")
if let temp = main["temp"] {
println("Temp existe")
weatherRequested.append(temp.stringValue)
}
}
iOS 和 Swift 中默认的 JSON 解析很糟糕。我建议您使用 SwiftyJSON
库。这将使解析它变得像......
let result = JSON(jsonResult)
let weatherDesc = result["weather"]["description"].stringValue
let weatherTemp = result["main"]["temp"].stringValue
希望对您有所帮助!
你有误
if let item = jsonResult[0] as? NSDictionary {
jsonResult 是一个 NSDictionary 而不是数组。删除“[0]”并重试
我最终找到了解决方案:
if let item = jsonResult as? NSDictionary {
if let weather = item["weather"] as? NSArray{
if let value = weather[0] as? NSDictionary{
if let description = value["description"] as? String{
weatherRequested.append(description)
}
}
}
if let main = item["main"] as? NSDictionary {
if let temp = main["temp"] {
weatherRequested.append(temp.stringValue)
}
}
}
感谢所有试图帮助我的人! :)