Search code examples
iosobjective-cswiftdictionarynsdictionary

How to remove a null value from NSDictionary


I have a JSON Feed:

{
    "count1" = 2;
    "count2" = 2;
    idval = 40;
    level = "<null>";
    "logo_url" = "/assets/logos/default_logo_medium.png";
    name = "Golf Club";
    "role_in_club" = Admin;
}

The problem is the "<null>". I cannot figure out how to remove it from the NSDictionary before saving it to NSUserDefaults.


Solution

  • Iterate through the dictionary and look for any null entries and remove them.

    NSMutableDictionary *prunedDictionary = [NSMutableDictionary dictionary];
    for (NSString * key in [yourDictionary allKeys])
    {
        if (![[yourDictionary objectForKey:key] isKindOfClass:[NSNull class]])
            [prunedDictionary setObject:[yourDictionary objectForKey:key] forKey:key];
    }
    

    After that, prunedDictionary should have all non-null items in the original dictionary.