我的iPhone应用程序正在从我的Web服务接收这个json字符串:
{"res":true,"users":[{"id":"79","username":""},{"id":"81","username":""},{"id":"83","username":""},{"id":"80","username":""},{"id":"82","username":""}]}
我正在使用以下代码处理它:
SBJsonParser *jsonParser = [[SBJsonParser alloc] init];
NSError *error = nil;
NSDictionary *dictionary = [jsonParser objectWithString:responseString error:&error];
其中responseString
是使用JSON收到的字符串。
现在如果我检查[[dictionary valueForKey:@"res"] boolValue]
它是正确的布尔值。
问题出在[dictionary objectForKey:@"users"]
我不明白它是什么类型的对象。
我也试着用这个:
NSLog(@"Is of type NSString?: %@", ([[dictionary objectForKey:@"users"] isMemberOfClass:[NSString class]])? @"Yes" : @"No");
NSLog(@"Is of type NSArray?: %@", ([[dictionary objectForKey:@"users"] isMemberOfClass:[NSArray class]])? @"Yes" : @"No");
NSLog(@"Is of type NSMutableArray?: %@", ([[dictionary objectForKey:@"users"] isMemberOfClass:[NSMutableArray class]])? @"Yes" : @"No");
NSLog(@"Is of type NSDictionary?: %@", ([[dictionary objectForKey:@"users"] isMemberOfClass:[NSDictionary class]])? @"Yes" : @"No");
NSLog(@"Is of type NSMutableDictionary?: %@", ([[dictionary objectForKey:@"users"] isMemberOfClass:[NSMutableDictionary class]])? @"Yes" : @"No");
但总是说No
。
感谢您的帮助。
答案 0 :(得分:2)
您应该使用isKindOfClass:
而不是isMemberOfClass:
,因为集合通常在Cocoa中实现为类集群。
此外,NSLog(@"%@", NSStringFromClass([[dictionary objectForKey:@"users"] class]))
写入比单独检查每个可能的类要短得多。