Анализируйте истинные и ложные значения в строке JSON, используя NSJSONSerialization JSONObjectWithData:

Я разрабатываю приложение iOS 5 и выше с последним SDK.

Мне нужно разобрать этот 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 равны нулю.

Нужно ли мне делать что-то особенное с логическими значениями?


person VansFannel    schedule 20.09.2013    source источник
comment
Вам нужно показать нам код, который вы используете, чтобы попытаться сослаться на эти значения.   -  person Hot Licks    schedule 20.09.2013


Ответы (1)


Значения JSON "true" и "false" хранятся как объекты NSNumber, поэтому должно работать следующее:

BOOL b = [deserializedDictionary[@"GetHoroscope"] boolValue];
person Martin R    schedule 20.09.2013