使用NSJSONSerialization JSONObjectWithData在JSON字符串上解析true和false值:

时间:2013-09-20 16:42:27

标签: objective-c json nsjsonserialization

我正在使用最新的SDK开发iOS 5及更高版本的应用程序。

我必须解析这个JSON:

{"GetHoroscope":false,"GetQuoteOfTheDay":false, ... }

要做到这一点,我有这个代码:

- (NSDictionary*)getDictionaryFromNSData:(NSData*)jsonData
{
    NSError* error = nil;
    id jsonObject = [NSJSONSerialization
                     JSONObjectWithData:jsonData
                     options:NSJSONReadingAllowFragments
                     error:&error];
    if ((jsonObject != nil) && (error == nil))
    {
        NSLog(@"Successfully deserialized...");
        if ([jsonObject isKindOfClass:[NSDictionary class]])
        {
            NSDictionary* deserializedDictionary = (NSDictionary *)jsonObject;
            NSLog(@"Dersialized JSON Dictionary = %@", deserializedDictionary);

            return deserializedDictionary;
        }
    }

    return nil;
}

但我对boolean值存在问题。当我检查deserializedDictionary时,我发现GetHoroscopeGetQuoteOfTheDay值为空。

我是否需要使用布尔值做一些特别的事情?

1 个答案:

答案 0 :(得分:9)

JSON“true”和“false”值存储为NSNumber个对象,因此如下所示 应该工作:

BOOL b = [deserializedDictionary[@"GetHoroscope"] boolValue];