我正在使用最新的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
值为空。
我是否需要使用布尔值做一些特别的事情?
答案 0 :(得分:9)
JSON“true”和“false”值存储为NSNumber
个对象,因此如下所示
应该工作:
BOOL b = [deserializedDictionary[@"GetHoroscope"] boolValue];