1

我已经连接到工作,但我无法从天气数组中获取描述。因为它是 Array 中的 Dictionary

{"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)
            }
        }
4

3 回答 3

3

我最终想出了一个解决方案:

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

感谢任何试图帮助我的人!:)

于 2015-11-26T21:54:30.077 回答
3

iOS 中使用 Swift 的默认 JSON 解析非常糟糕。我建议你使用SwiftyJSON图书馆。这将使解析它变得像......

let result = JSON(jsonResult)
let weatherDesc = result["weather"]["description"].stringValue
let weatherTemp = result["main"]["temp"].stringValue

希望有帮助!

于 2015-11-26T13:35:50.660 回答
0

你有一个错误

if let item = jsonResult[0] as? NSDictionary {

jsonResult 是一个 NSDictionary 而不是一个数组。删除“[0]”并重试

于 2015-11-26T13:47:19.903 回答