swift如何解析 JSON 数组的键的数目改变每次 API 调用的时候?

标签: json ios Swift
发布时间: 2017/3/1 1:06:22
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

所以我试图解析 JSON 在 swift 和我 API 调用给了我一个 JSON 数组字典所包含的附近的无线网络名称。 我的问题是,网络在不同的地方的数量将会不同,如何来解析此 JSON 数组所以后解析我能够显示所有可用的 wifi 网络名称作为表中的单个单元格。 ︰ 我不想要使用 SwiftJSON 库

我的 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 {

            }
        }   
    }

解决方法 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  
}
官方微信
官方QQ群
31647020