我们可以将搜索应用于从 json 解析中获取的数组的表视图吗

Posted

技术标签:

【中文标题】我们可以将搜索应用于从 json 解析中获取的数组的表视图吗【英文标题】:can we apply search to tablview of array getting from json parsing 【发布时间】:2019-06-13 11:41:04 【问题描述】:

我在 tableView 中搜索,但 NSDictionry 没有成员项目它没有过滤搜索

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) arrFilterLocation = searchText.isEmpty ? arrInrestLocation:arrInrestLocation.filter( (item:String) -> Bool in
        return item.range(of: searchText,options: .caseInsensitive ,range: nil,locale: nil) != nil
    )
   TabelView.reloadData()

【问题讨论】:

raywenderlich.com/… 建议您不要使用NSDictionary。将 JSON 解析为结构。它使搜索变得更加容易。 【参考方案1】:

假设arrFilterLocationarrInrestLocation 都是arraysString,即

var arrInrestLocation: [String]
var arrFilterLocation: [String]

您可以简单地在每个stringfilter 上使用contains(_:),在包含arrInrestLocationarrInrestLocation 中的所有strings 中使用searchText

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) 
    arrFilterLocation = searchText.isEmpty ? arrInrestLocation : arrInrestLocation.filter( $0.lowercased().contains(searchText.lowercased()) )
    tableView.reloadData()

【讨论】:

$0.range(of: searchText, options: .caseInsensitive) != nil$0.lowercased().contains(searchText.lowercased()) 效率更高 NSDictionary 的两个数组。 首先使用 Dictionary 而不是 NSDictionary。此外,添加您要在其中搜索单词的词典示例。

以上是关于我们可以将搜索应用于从 json 解析中获取的数组的表视图吗的主要内容,如果未能解决你的问题,请参考以下文章

如何将json数据从json数组解析到recyclerview java android?

解析 JSON 文件(本地存储),从而快速创建对象数组

Swift JSON 解析和打印数组中的指定值

将 swift 数组解析为有效的 json

Retrofit2 - JSON 数组解析

Swift 和 JSON 只解析一个对象而不是一个数组