繁体   English   中英

如何基于JSON中的另一个字典键过滤字典值?

[英]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应该是NSDictionaryNSArray ,每个NSArray都包含一个titleurl元素。 因此,您可以适当地访问URL以检索结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM