xcode检查JSON数组是否包含值

时间:2012-12-17 18:57:51

标签: iphone arrays json

我正在返回一个JSON数组: 数组2:({“checkin_ID”= 123},{“checkin_ID”= 121;},{“checkin_ID”= 99;}等)

在我的代码中,每个单元格都有自己的checkin_ID。如果单元格的checkin_ID与我的JSON数组中的任何数字或字符串匹配,我想显示一个按钮。

有什么想法吗?

代码:

viewDidLoad中:

NSError *error = nil; NSDictionary *dict2 = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData2 error&error2]; 

if (dict2) { 
    rows2 = [dict2 objectForKey:@"likes"]; 
}

细胞构建:

NSPredicate *checkinIDPredicate = [NSPredicate predicateWithFormat:@"checkin_ID == %d", myInt]; 

NSArray *matchingCheckins = [rows2 filteredArrayUsingPredicate:checkinIDPredicate];

if([matchingCheckins count] > 0) // Show the button, etc. 

在添加代码后的NSLog中...谓词checkin_ID = 121匹配谓词()

1 个答案:

答案 0 :(得分:0)

首先,将您的数据解析为一个字典数组,将其存储在属性中供以后使用。

NSError *error = nil;
self.checkins = [NSJSONSerialization JSONObjectWithData:checkinData options:0 error:&error];

checkinData是一个NSData对象,可以通过JSON字符串轻松创建。

在构建行的单元格时,按目标ID过滤签入列表:

NSPredicate *checkinIDPredicate = [NSPredicate predicateWithFormat:@"checkin_ID == %d", cellCheckinID];
NSArray *matchingCheckins = [self.checkins filteredArrayUsingPredicate:checkinIDPredicate];
if([matchingCheckins count] > 0)
    // Show the button, etc.

此代码尚未经过测试,因此可能包含编译器或逻辑错误,但这是它的要点。