2017-02-10 8 views
1

所以我試圖在swift中解析JSON,並且我的API調用給了我一個包含附近wifi網絡名稱的JSON數組字典。 我的問題是,不同地方的網絡數量會有所不同,所以如何解析這個JSON數組,以便在解析Im後能夠將所有可用的WiFi網絡名稱顯示爲TableView中的單個單元格。 PS:我不想用SwiftJSON庫如何在每次調用API時更改鍵的數量時解析JSON數組?

我的JSON是:

{ 
"networks": 
    [ 
    "WiFi network 1", 
    "WiFi network 2", 
    "WiFi network 3", 
    ], 
} 

我的JSON解析如下,

func downloadSettingsDetails(completed: @escaping DownloadSettingsComplete) { 
    Alamofire.request(SETTINGS_DATA_URL).responseJSON { response in 
     let result = response.result 
     print(response.description) 

     if let dictDetails = result.value as? Dictionary<String , AnyObject> { 

      if let networks = dictDetails["networks"] as? String { 

      } 
     } 
    } 
+4

這些都是陣列。因此,將具有關鍵「網絡」的對象加載到數組中,並且您都已設置完畢。 – GeneCode

+0

使用'NSJSONSerialization',因爲它是一個使用count屬性獲取元素數量的數組。 –

回答

1

networks項下的值是一個數組。如果將其解析爲數組而不是特定對象,則可以使用String的數組。之後,您可以通過.count屬性獲取數量以獲取有多少網絡。

例如,你可以不喜歡以下,使用guards安全:

func downloadSettingsDetails(completed: @escaping DownloadSettingsComplete) { 
    Alamofire.request(SETTINGS_DATA_URL).responseJSON { response in 
     let result = response.result 
     print(response.description) 

     guard let json = result as? NSDictionary, let networks = json["networks"] as? [String] else { 
      return 
     } 

     //Do what you want with the networks array 
} 
相關問題