JSON到NSDictionary - 如何检查布尔类型

时间:2014-07-28 13:28:19

标签: objective-c

我使用此代码从网站获取JSON:

+(NSDictionary *)parseJSONFromURLString:(NSString *)urlString {
    NSURL *url = [NSURL URLWithString:urlString];
    NSString *jsonAsString = [NSString stringWithContentsOfURL:url
                                                      encoding:NSUTF8StringEncoding
                                                         error:nil];
    NSData *json = [jsonAsString dataUsingEncoding:NSUTF8StringEncoding];

    return [NSJSONSerialization JSONObjectWithData:json options:0 error:nil];
}

当我调用此方法并调试时:

NSDictionary *response = [APIUtils parseJSONFromURLString:[queryBuilder questionsFromTime:time WithPageSize:100 WithPage:1]];

我可以在parseJSONFromURLString(NSString)方法中查看jsonAsString变量我可以看到元素“has_more”,其值为true:

  ..., "has_more":true, ....

但如果我看一下responseVariable(NSDictionary),我会看到下一张图片:

enter image description here

该值具有__NSCFBoolean类型和0X7fff79d377f0值。

如何将此类型转换为BOOL并将其检查为true或false?

3 个答案:

答案 0 :(得分:2)

使用此if语句应检测该键的值是true还是false。

if([[response objectForKey:@"has_more"] isEqual:[NSNumber numberWithBool:true]]){

     //hits here if this value is true

}else{

     //and here if it's not.
}

我希望这是你正在寻找的。

答案 1 :(得分:1)

实际上是NSNumber,您可以获得boolValue

答案 2 :(得分:1)