如何在ios目标c中过滤Json数据

Posted

技术标签:

【中文标题】如何在ios目标c中过滤Json数据【英文标题】:how to Filter the Json data in ios objective c 【发布时间】:2016-08-29 08:13:04 【问题描述】:

JSON 解析有问题。 我得到 JSON 数据,我想显示与 restid 匹配的项目。 我有一个 tableView 来显示不同的餐厅信息,每家餐厅也有自己的评论单元来评论这家餐厅。 所以,我会过滤 JSON 数据。 让每个餐厅评论单元都能获得自己的评论。

这是我的 JSON:

(
    
    comment = "very good";
    food = chicken;
    name = Tom;
    restid = 1;
    score = 4;
,
    
    comment = nice;
    food = coffee;
    name = Jack;
    restid = 3;
    score = 3;
,
    
    comment = tasty;
    food = pizza;
    name = Mary;
    restid = 17;
    score = 5;
,
    
    comment = unlike;
    food = none;
    name = Gigi;
    restid = 33;
    score = 1;
,
    
    comment = delicious;
    food = juice;
    name = Bruce;
    restid = 45;
    score = 5;

)

这是我的代码: 它可以显示我的 tableView 中的所有数据以及不同餐厅评论单元中的所有相同数据。

- (void)getCommentInfo:(id)sender 

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
        NSURL *url = [NSURL URLWithString:@"http://localhost:8888/foodComment_json.php"];

        NSData *data = [NSData dataWithContentsOfURL:url];
        NSArray *comment = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
        NSLog(@"Comment is %@",comment);

        self.commentArray = [NSMutableArray arrayWithArray:comment];

        dispatch_async(dispatch_get_main_queue(), ^
            [self.detailCommentTableView reloadData];
        );
    );

【问题讨论】:

使用NSPredicate 感谢您的帮助。 【参考方案1】:

试试这个,我没有测试代码所以如果你有问题请告诉我。

NSArray *filteredArray = [comment filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id elem, NSDictionary *bindings) 
    return ([elem objectForKey:@"restid"] == <your_rest_id>)
]];

【讨论】:

【参考方案2】:

你可以这样做

 NSArray *array = [NSArray arrayWithObject:[NSMutableDictionary dictionaryWithObject:@"<filter string?" forKey:@"restid"]];   // you can also do same for Name key... 
 NSArray *filteredarray = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(restid == %@)", @"<filter string>"]];

【讨论】:

谢谢您的回答。帮了我很多忙。

以上是关于如何在ios目标c中过滤Json数据的主要内容,如果未能解决你的问题,请参考以下文章

在 uiviewTable ios 上传递 JSON 数据(目标 c)

在通过 segue 更改视图之前检查并验证 JSON 数据字符串(iOS 应用程序 - 目标 C)

如何在iOS(目标c)中发送带有字典和数组的JSON?

在 jQuery 或 vanilla JavaScript 中过滤 JSON 数据

如何在 iOS 上本地缓存 JSON Web 响应 - 目标 c

如何在目标c中逐行解析JSON文件