3

我正在使用最新的 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,我看到 GetHoroscope并且GetQuoteOfTheDay值为空。

我需要对布尔值做一些特别的事情吗?

4

1 回答 1

9

JSON“真”和“假”值存储为NSNumber对象,所以以下应该工作:

BOOL b = [deserializedDictionary[@"GetHoroscope"] boolValue];
于 2013-09-20T16:56:15.497 回答