ios - 每次调用 API 时键的数量都发生变化,如何解析 JSON 数组?

标签 ios json swift

所以我尝试快速解析 JSON,我的 API 调用为我提供了一个 JSON 数组字典,其中包含附近 wifi 网络的名称。 我的问题是,不同地方的网络数量会有所不同,那么如何解析这个 JSON 数组,以便在解析后我能够在 TableView 中将所有可用的 wifi 网络名称显示为单个单元格。 P.S: 我不想使用 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 {

            }
        }   
    }

最佳答案

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  
}

关于ios - 每次调用 API 时键的数量都发生变化,如何解析 JSON 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42157225/

相关文章:

ruby-on-rails - 如何使用 Ruby on Rails 将 company.address.city 转换为对象

javascript - 在两个相等的 JSON 对象中,在一种情况下访问 javascript 中的值有效,另一种情况则返回未定义

ios - 关于 UIViewController 如何使用 UIViewcontroller 的属性的扩展协议(protocol)

ios - 从 iOS 11 中的 iPhone 模拟器截屏(100% 比例)

ios - 在 ios 中获取好友列表时,Facebook SDK Error Domain=com.facebook.sdk Code=5

ios - CloudKit 无法通过约束与核心数据同步

iOS 键盘扩展访问 PHImageManager

针对 json/array 的 jQuery 文本字段验证

swift - 使用Firebase数据库信息填充UITableView

arrays - 用对象过滤嵌套数组