創造生命時間範疇更換空
創建類別(換上黑色的空間空字符串)
的NSDictionary + NullReplacement.h
#import <Foundation/Foundation.h>
@interface NSDictionary (NullReplacement)
- (NSDictionary *)dictionaryByReplacingNullsWithBlanks;
@end
的NSDictionary + NullReplacement .M
#import "NSDictionary+NullReplacement.h"
#import "NSArray+NullReplacement.h"
@implementation NSDictionary (NullReplacement)
- (NSDictionary *)dictionaryByReplacingNullsWithBlanks {
const NSMutableDictionary *replaced = [self mutableCopy];
const id nul = [NSNull null];
const NSString *blank = @"";
for (NSString *key in self) {
id object = [self objectForKey:key];
if (object == nul) [replaced setObject:blank forKey:key];
else if ([object isKindOfClass:[NSDictionary class]]) [replaced setObject:[object dictionaryByReplacingNullsWithBlanks] forKey:key];
else if ([object isKindOfClass:[NSArray class]]) [replaced setObject:[object arrayByReplacingNullsWithBlanks] forKey:key];
}
return [NSDictionary dictionaryWithDictionary:[replaced copy]];
}
@end
再創建一個類別(換上黑色的空間空數組)
的NSArray + NullReplacement.h
#import <Foundation/Foundation.h>
@interface NSArray (NullReplacement)
- (NSArray *)arrayByReplacingNullsWithBlanks;
@end
的NSArray + NullReplacement.m
#import "NSArray+NullReplacement.h"
#import "NSDictionary+NullReplacement.h"
@implementation NSArray (NullReplacement)
- (NSArray *)arrayByReplacingNullsWithBlanks {
NSMutableArray *replaced = [self mutableCopy];
const id nul = [NSNull null];
const NSString *blank = @"";
for (int idx = 0; idx < [replaced count]; idx++) {
id object = [replaced objectAtIndex:idx];
if (object == nul) [replaced replaceObjectAtIndex:idx withObject:blank];
else if ([object isKindOfClass:[NSDictionary class]]) [replaced replaceObjectAtIndex:idx withObject:[object dictionaryByReplacingNullsWithBlanks]];
else if ([object isKindOfClass:[NSArray class]]) [replaced replaceObjectAtIndex:idx withObject:[object arrayByReplacingNullsWithBlanks]];
}
return [replaced copy];
}
@end
需要使用單一線路和享受無空字典
#import "NSDictionary+NullReplacement.h"
NSDictionary * withoutNullResultDict=[resultDict dictionaryByReplacingNullsWithBlanks];
感謝,但它遍歷1LV DIC如{人,類} 我想去一個級別深度 – Peerax
然後重複相同的另一個循環。意思是,在字典中迭代。 –
嘗試類似這個,\ NSArray * keys = [json allKeys]; for(NSString * keysV in keys){for(NSDictionary * subDict in [yourDict objectForKey:keysV]){NSArray * subKeys = [subDict allKeys];對於(NSString * keysVv in subKeys){ if([subDict objectForKey:keysVv] isEqual:[NSNull null]]){ //在這裏做你的東西 }}} –