如何从NSDictionary中删除空值

jim*_*bob 15 null json nsdictionary ios

我有一个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;
}
Run Code Online (Sandbox Code Playgroud)

问题是"<null>"我无法弄清楚如何在将NSDictionary保存到NSUserDefaults之前从NSDictionary中删除.

请帮我解决这个问题.谢谢!

Mar*_*n R 47

另一种变体,没有(显式)循环:

NSMutableDictionary *dict = [yourDictionary mutableCopy];
NSArray *keysForNullValues = [dict allKeysForObject:[NSNull null]];
[dict removeObjectsForKeys:keysForNullValues];
Run Code Online (Sandbox Code Playgroud)


Sim*_*een 13

遍历字典并查找任何空条目并将其删除.

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

之后,prunedDictionary应该在原始字典中包含所有非空项.