iOS去除網路請求到的資料的null值

2021-07-09 01:37:10 字數 1611 閱讀 8972

請求介面獲取到的資料報涵null值,處理的時候遇到了問題。

在網上搜到了幾種解決辦法,自己嘗試了兩種都可以達到目的,在這裡記錄一下。

第一種方法是使用分類給字典新增乙個類方法,將字典中的null值全部替換為空字串,**如下:

.h檔案**:

#import @inte***ce nsdictionary (deletenull)

+(id)changetype:(id)myobj;

@end

.m檔案**:

#import "nsdictionary+deletenull.h"

@implementation nsdictionary (deletenull)

#pragma mark - 私有方法

//將nsdictionary中的null型別的專案轉化成@""

+(nsdictionary *)nulldic:(nsdictionary *)mydic

return resdic;

}//將nsdictionary中的null型別的專案轉化成@""

+(nsarray *)nullarr:(nsarray *)myarr

return resarr;

}//將nsstring型別的原路返回

+(nsstring *)stringtostring:(nsstring *)string

//將null型別的專案轉化成@""

+(nsstring *)nulltostring

#pragma mark - 公有方法

//型別識別:將所有的nsnull型別轉化成@""

+(id)changetype:(id)myobj

else if([myobj iskindofclass:[nsarray class]])

else if([myobj iskindofclass:[nsstring class]])

else if([myobj iskindofclass:[nsnull class]])

else

}@end

使用方法:
[model setvaluesforkeyswithdictionary:[nsdictionary changetype:dict]];

第二種方法是利用afnetworking的自動解析,去除掉值為null的鍵值對,**如下:
_manager = [afhttprequestoperationmanager manager];

afjsonresponseserializer *response = [afjsonresponseserializer serializer];

response.removeskeyswithnullvalues = yes;

_manager.responseserializer = response;

_manager.requestserializer = [afjsonrequestserializer serializer];

iOS請求網路資料的方式

get同步請求 nsstring strurl 銀行 ion 大連 output json ak 6e823f587c95f0148c19993539b99295 乙個正常的url位址是不允許有中文的,只能有數字和26個英文本母的大小寫,和一些特殊的符號避暑 等,如果遇到帶中文的url,首先把它進行...

iOS的網路請求

首先建立乙個 uiviewcontroller,然後在.m檔案中寫入 簽訂協議 inte ce mainviewcontroller 可變的資料屬性,用來拼接每一小塊資料 property nonatomic,retain nsmutabledata data property nonatomic,...

ios中的網路請求

get請求 請求的位址 對於中文的話要對請求位址實行 utf 8編碼 urlstring stringbyaddingpercentescapesusingencoding nsutf8stringencoding nsurlrequest request nsurlrequest requestw...