Как вы сказали, ваш ответ:
[
{ resultId: "1", name: "Food" },
{ resultId: "2", name: "Movies"}
]
Итак, ваша структура будет
struct SearchResults: Decodable {
let resultId: String
let name: String
}
И вы будете использовать ее как:
do {
let resultArray = try JSONDecoder().decode([SearchResults].self, from: data)
print("Result Count:", searchResult.id)
} catch let decodeError {
print("Failed to decode:", decodeError)
}
Для поиска следует использовать filter
, например:
let searchString = "F"
let filteredArray = resultArray.filter( { String($0.name.first!) == searchString } )
Для сопоставления первого символа = Строка ($ 0.name.first!) == searchText
Проверить, если имя имеет поиск Текст = $ 0.name.contains (searchText)
Всего:
do {
let searchResult = try JSONDecoder().decode([SearchResults].self, from: data)
let filteredArray = resultArray.filter( { $0.name.contains(searchText) } )
} catch let decodeError {
print("Failed to decode:", decodeError)
}