在 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)
            }
        }
    }

感谢所有试图帮助我的人! :)