iOS-JSON空值處理

服務(wù)端返回的數(shù)據(jù)經(jīng)常會(huì)有空值,如果沒有處理好的話,會(huì)出現(xiàn)閃退的情況,可以寫一個(gè)NSDictionary的擴(kuò)展對(duì)空值進(jìn)行處理,防止閃退

//
//  NSDictionary+MyDictionary.m
//  yunbaolive
//
//  Created by apple on 2021/9/24.
//  Copyright ? 2021 cat. All rights reserved.
//

#import "NSDictionary+MyDictionary.h"

@implementation NSDictionary (MyDictionary)


- (NSDictionary *)deleteAllNullValue{
    NSMutableDictionary *mutableDic = [[NSMutableDictionary alloc] init];
    for (id keyStr in self.allKeys) {
        if ([[self objectForKey:keyStr] isKindOfClass:[NSDictionary class]]) {
            NSMutableDictionary *dicSub = [[NSMutableDictionary alloc] initWithDictionary:[self objectForKey:keyStr]];
            for (NSString *sub in dicSub.allKeys) {
                if ([[dicSub objectForKey:sub] isKindOfClass:[NSDictionary class]]) {
                    NSMutableDictionary *dicSubTwo = [[NSMutableDictionary alloc] initWithDictionary:[dicSub objectForKey:sub]];
                    for (NSString *sub in dicSubTwo.allKeys) {
                        if ([[dicSubTwo objectForKey:sub] isEqual:[NSNull null]]) {
                            [dicSubTwo setObject:@"" forKey:sub];
                        }
                    }
                    [dicSub setObject:dicSubTwo forKey:sub];
                }else  if ([[dicSub objectForKey:sub] isKindOfClass:[NSArray class]]) {
                    NSMutableArray *aryDub = [[NSMutableArray alloc] initWithArray:[dicSub objectForKey:sub]];
                    for (int i=0; i < aryDub.count; i++) {
                        id sub  = aryDub[i];
                        if ([sub isKindOfClass:[NSDictionary class]]) {
                            NSMutableDictionary *dicSub = [[NSMutableDictionary alloc] initWithDictionary:aryDub[i]];
                            [aryDub replaceObjectAtIndex:i withObject:[dicSub deleteAllNullValue]];
                        }
                    }
                    [dicSub setObject:aryDub forKey:sub];
                }
                if ([[dicSub objectForKey:sub] isEqual:[NSNull null]]) {
                    [dicSub setObject:@"" forKey:sub];
                }
            }
            [mutableDic setObject:dicSub forKey:keyStr];
        }else if([[self objectForKey:keyStr] isKindOfClass:[NSArray class]]){
            NSMutableArray *aryDub = [[NSMutableArray alloc] initWithArray:[self objectForKey:keyStr]];
            for (int i=0; i < aryDub.count; i++) {
                id sub  = aryDub[i];
                if ([sub isKindOfClass:[NSDictionary class]]) {
                    NSMutableDictionary *dicSub = [[NSMutableDictionary alloc] initWithDictionary:aryDub[i]];
                    [aryDub replaceObjectAtIndex:i withObject:[dicSub deleteAllNullValue]];
                }
            }
            [mutableDic setObject:aryDub forKey:keyStr];
            
        }else{
            if ([[self objectForKey:keyStr] isEqual:[NSNull null]]) {
                [mutableDic setObject:@"" forKey:keyStr];
            }
            else{
                [mutableDic setObject:[self objectForKey:keyStr] forKey:keyStr];
            }
        }

    }
    return mutableDic;
}
 


@end

 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容