[英]How to filter dictionary values based on another dictionary key from a JSON?
我有一个带有UISearchController进行搜索的表。 第一个表从JSON填充,格式为:
{
"items":
[
{
"title":"title1",
"url":"url1",
},
{
"title":"title2",
"url":"url2",
}
]
}
“标题”显示为单元格的textLabel,URL是单击该单元格时打开的链接。
当我在搜索栏中搜索时,结果表将显示由符合搜索条件的标题组成的表。 我的问题是这些不包含网址,因此单击这些单元格时什么也不会发生。 我的搜索条件如下:
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController {
// filter the search results
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [cd] %@", self.searchController.searchBar.text];
self.results = [[self.JSONarray valueForKey:@"title"] filteredArrayUsingPredicate:predicate];
[self.tableView reloadData];
}
我可以看到我认为的问题,但无法找出解决方法。 在搜索时,仅搜索标题并使用这些标题填充结果数组,但是我需要根据相应标题过滤网址。
任何帮助将非常感激。
由于没有您的所有代码,因此请在头顶上键入此内容,但请尝试以下操作:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"title contains [cd] %@", self.searchController.searchBar.text];
self.results = [self.JSONarray filteredArrayUsingPredicate:predicate];
不同之处在于我们不首先过滤JSON数组的title
元素; 相反,我们正在搜索整个数组,并在谓词中使用title
。
完成此操作后, self.results
应该是NSDictionary
的NSArray
,每个NSArray
都包含一个title
和url
元素。 因此,您可以适当地访问URL以检索结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.