服務器返回的json數據中含有null的處理方法


 

個人博客:http://guohuaden.com/2017/03/06/json-dataNull/
因為有遇到過類似情況,所以就想到了一些解決方法,並且實踐了一下,這里簡單的做個記錄。


注:有看到不少的評價,有說后台責任,也有說怪移動端沒有做容錯處理。我這里就事論事的說下,移動端從服務器得到的數據中確實是不應該包含null的,因為這本身就是不合理的。(當然,我的就事論事是站在iOS立場上說的,這個無可厚非)。

下面👇說一下想到的幾種方法:

一、 對於所有使用到的json中的對象做判斷(當然這是最笨的方法)

NSString *msg ;
if ([str isKindOfClass: [NSNull class]]){
NSLog(@"str 為空!");
}
//或者使用[str isEqual:[NSNull null]]

為什么首先說這種方法呢,大抵是因為這個方法的工作量比較大吧。但有時候你是完全不能避免這種情況的,尤其是在老舊的項目中,當你看到項目中所有的解析都是KVO模式時,你就知道一個個去判斷是多么讓人糾結的事情了。

二、使用JSONModel等第三方json解析庫

JSONModel有專門針對對象為null的處理,使其返回為空。iOS移動端賦值為空,打印為nil

 

三、有一個專門針對數據為null的類擴展,NullSafe

這個庫是專門處理對象為null的。只有一個.m文件。使用也簡單,因為你只需要添加到項目中就可以了,不再需要引入頭文件等其他任意操作。

 

這里放一個我測試是使用的簡單demo

github:data_nullDemo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM