json去空

我们在获取网络数据的时候,经常会遇到NSNull的问题,那我们如何去掉这个NsNull呢,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
- (NSMutableDictionary *)dictionaryWithOutNull
{
NSArray *keysArr = [self allKeys];
for (NSString *keyStr in keysArr)
{
id value = [self objectForKey:keyStr];
if ([value isKindOfClass:[NSNull class]])
{
[self setValue:@"" forKey:keyStr];
}
else if ([value isKindOfClass:[NSArray class]])
{
NSMutableArray *valueArr = [NSMutableArray arrayWithArray:value];
for (id arrElements in value)
{
if ([arrElements isKindOfClass:[NSDictionary class]])
{
NSMutableDictionary *mutaDic = [NSMutableDictionary dictionaryWithDictionary:arrElements];
NSInteger index = [valueArr indexOfObject:arrElements];
NSDictionary *subDic = (NSDictionary *)[mutaDic dictionaryWithOutNull];
[valueArr replaceObjectAtIndex:index withObject:subDic];
}
}
[self setValue:valueArr forKey:keyStr];
}
else if ([value isKindOfClass:[NSDictionary class]])
{
NSMutableDictionary *mutaDic = [NSMutableDictionary dictionaryWithDictionary:value];
[self setValue:[mutaDic dictionaryWithOutNull] forKey:keyStr];
}
}
return self;
}