swift - 如何使用 AlamoFire 搜索 JSON API 和解码数组

标签 swift alamofire swift4

我正在搜索一个 JSON API,我需要解码其中的一个数组。我正在使用 AlamoFire。示例:当我输入字母“F”时,我只想显示“F”字样。我只想在数组“name”中搜索。如有任何帮助,我们将不胜感激!

下面是我的代码:

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
    let url = "http://dummy.com/url"
    Alamofire.request(url).responseData { (dataResponse) in
        if let err = dataResponse.error {
            print("Failed to contact", err)
            return
        }

        guard let data = dataResponse.data else { return }
        let dummyString = String(data: data, encoding: .utf8)
        print(dummyString ?? "")

        do {
             let searchResult = try JSONDecoder().decode(SearchResults.self, from: data)
            print("Result Count:", searchResult.id)

        } catch let decodeError {
            print("Failed to decode:", decodeError)
        }
    }
}

struct SearchResults: Decodable {
    let id: String

}

我的 API 数组如下所示:

{ 结果ID:“1”, 名称:“食物”, }, { 结果ID:“2”, 名称:“电影”,

最佳答案

你的结果是 array format 所以你需要把你的 model 像这样:

let searchResult = try JSONDecoder().decode([SearchResults].self, from: data)

对于搜索,您可以应用过滤器:

let filteredArray = searchResult.filter( { $0.name.contains("f") } )

关于swift - 如何使用 AlamoFire 搜索 JSON API 和解码数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50298566/

相关文章:

ios - 使用 Realm 从 Swift 中的文本字段保存标题

ios - 无聊的 SSL 握手失败和复制 Identity Cred 时出错

ios - 函数返回是什么意思?

swift - 在 swift 中实现手势识别器后,如何找到按钮标签?

swift - 如何在 swift 中围绕 Alamofire.authenticate 方法制作登录异步函数包装器?

swift - 使用 alamofireimage 在 UIImageview 中显示图像

swift - 如何将导航 Controller 添加到不是初始 UIViewController 的 UIViewController

ios - 为什么 Swift4 会转换一个 UIButton 数组!到 [UIButton?] 类型?

swift4 - 为什么我收到错误 : problem decoding CoreML document?

ios - 错误地生成单元格 View 。第一个元素显示正确,其余元素显示错误