我正在搜索一个 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/