ios - 在 Swift 中过滤字典的 NSArray

标签 ios json swift

我有一组从 RESTful API 中提取的字典。我目前正在尝试根据需要过滤掉“域”等于“youtube.com”的数据。

我怎样才能过滤掉它?我调查过

results.filter({
    $0["domain"] != "youtube.com"

但不确定如何更深入地让它发挥作用。

enter image description here

enter image description here

最佳答案

或者,您可以使用 Swift 数组,将 theJSON 转换为 [[String: AnyObject]] 而不是 NSMutableArray。然后,您不必强制转换 results。然后你可以使用 filter

在 Swift 1.2 中,这可能是:

let task = session.dataTaskWithURL(url) { data, response, error in
    if error != nil || data == nil {
        print(error)
        return
    }

    var parseError: NSError?
    if let resultObject = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0), error: &parseError) as? [[String: AnyObject]] {
        let results = resultObject.filter() { ($0["data"]?["domain"] as? String) != "youtube.com" }
        dispatch_async(dispatch_get_main_queue()) {
            // use results here
        }
    } else {
        print(parseError)
        return
    }

}
task.resume()

或者,在 Swift 2 中:

let task = session.dataTaskWithURL(url) { data, response, error in
    guard data != nil && error == nil else {
        print(error)
        return
    }

    do {
        let resultObject = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [[String: AnyObject]]
        let results = resultObject?.filter() { ($0["data"]?["domain"] as? String) != "youtube.com" }
        dispatch_async(dispatch_get_main_queue()) {
            // use results here
        }
    } catch let parseError {
        print(parseError)
    }
}
task.resume()}

关于ios - 在 Swift 中过滤字典的 NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33962562/

相关文章:

ios - 在设备 iOS websocket 服务器上

arrays - 用节点替换 jq 中从根开始的路径

ios - (Cocoa 错误 3840。)“(字符 0 周围的值无效。)AFNetworking

Java 客户端到 Spring Data Rest 服务器

ios - 快速更改特定 UICollectionView 单元格的背景

ios - 使用标签隐藏 subview

ios - 更改 UIScrollView 中的页数

ios - 请求失败 : unauthorized (401) with Twitter login

ios - 是否可以在 Xcode 7 中编译 Swift 2 代码并在 iOS 11.1 iPhone 6 上运行它?

ios - 以编程方式使用大小类设置字体大小