2015-03-02 108 views
0

我正在学习如何编写iOS代码,我试图编写一个天气应用程序。我从雅虎天气检索JSON部分代码:从雅虎天气检索JSON数据处理错误

 `"forecast":[ 
       { 
       "code":"24", 
       "date":"2 Mar 2015", 
       "day":"Mon", 
       "high":"39", 
       "low":"16", 
       "text":"Partly Cloudy/Wind" 
       } 
     ]` 

但由于某些原因,该代码的那部分具有“[”和“]”,在它的象征。因此,我的代码无法获取数据并将其存储在NSDictionary中。我用它来获取数据的iOS SWIFT代码:

   `if let forecast = item["forecast"] as? NSDictionary{ 

         let highDay: AnyObject = forecast["high"]! 
         let lowDay: AnyObject = forecast["low"]! 


         high = String(highDay as NSString) 
         self.high.extend("˚") 
         println(high) 

         low = String(lowDay as NSString) 
         self.low.extend("˚") 
        }` 

我不是有与没有“[”和“]”符号处理数据块的任何问题。但我无法弄清楚这一点。有没有解决这个问题的方法?

+1

[]表示它是一个数组而不是字典。预测[0]会给你的字典 – Thorsten 2015-03-02 19:55:19

+0

https://github.com/SwiftyJSON/SwiftyJSON – 2015-03-02 20:33:33

+0

使用swiftjson更简单 – 2015-03-03 02:19:30

回答

2

预测:[...]表示您在字典中。该字典item["forecast"]中的预测关键字的值不是字典,而是数组。在JSON中,[]是一个数组,{}是一个字典。

在你的exampled中,预测数组只有一个字典。为了得到它,你可以尝试:

if let forecastArray = item["forecast"] as? NSArray { 
    if let forecast = forecastArray[0] as? NSDictionary { 
    } 
}