解決JSON數(shù)據(jù)因?yàn)閚ull導(dǎo)致數(shù)據(jù)加載失敗的方法
一、首先分析問題:
使用NSJSONSerialization或者AFN框架的AFHTTPSessionManager(底層也是NSJSONSerialization)將NSData數(shù)據(jù)轉(zhuǎn)化成OC對象,有時會出現(xiàn)URL正確,加載數(shù)據(jù)任然會報(bào)錯:
reason: '-[NSNull length]: unrecognized selector sent to instance
分析原因發(fā)現(xiàn),轉(zhuǎn)化出來的OC對象中含有null.所以,NSNull沒有l(wèi)ength方法,所以會報(bào)找不到方法錯誤。
二、解決辦法:將"null"替換成“ ”。
1.先將NSData數(shù)據(jù)轉(zhuǎn)化成NSString;
2.再對轉(zhuǎn)化好的NSString進(jìn)行替換;
3.替換好的NSSting再轉(zhuǎn)化成NSData;
4.NSData轉(zhuǎn)化成OC對象
下面提供一個封裝好的方法,以后直接使用就好了
//替換數(shù)據(jù)中的空字符串
+ (NSArray*)arrayWithNoNullArray:(NSArray*)originalArray {
//array -> string
NSData *data = [NSJSONSerialization dataWithJSONObject:originalArray options:0 error:nil];
NSString *str =[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
//替換
NSString *nStr = [str stringByReplacingOccurrencesOfString:@"null" withString:@"\"\""];
//string -> array
NSData *nData =[nStr dataUsingEncoding:NSUTF8StringEncoding];
return [NSJSONSerialization JSONObjectWithData:nData options:0 error:nil];
}
傳入一個含有null的OC數(shù)組,直接返回替換過的新數(shù)組。用不含null的數(shù)組再去加載數(shù)據(jù),就不會有問題了。
好了,以上就是解決JSON數(shù)據(jù)因?yàn)閚ull導(dǎo)致數(shù)據(jù)加載失敗的方法,希望對有需要的朋友們有所幫助,如果有疑問打擊可以留言交流。
- Javascript中判斷一個值是否為undefined的方法詳解
- JS中call/apply、arguments、undefined/null方法詳解
- 詳解javascript中原始數(shù)據(jù)類型Null和Undefined
- javascript中undefined與null的區(qū)別
- JavaScript中Null與Undefined的區(qū)別解析
- js判斷輸入字符串是否為空、空格、null的方法總結(jié)
- iOS中json解析出現(xiàn)的null,nil,NSNumber的解決辦法
- js的Boolean對象初始值示例
- Javascript Boolean、Nnumber、String 強(qiáng)制類型轉(zhuǎn)換的區(qū)別詳細(xì)介紹
- JavaScript基本類型值-Undefined、Null、Boolean
相關(guān)文章
iOS利用CoreImage實(shí)現(xiàn)人臉識別詳解
OS的人臉識別從iOS 5(2011)就有了,不過一直沒怎么被關(guān)注過。人臉識別API允許開發(fā)者不僅可以檢測人臉,也可以檢測到面部的一些特殊屬性,比如說微笑或眨眼。下面這篇文章主要給大家介紹了iOS利用CoreImage實(shí)現(xiàn)人臉識別的相關(guān)資料,需要的朋友可以參考下。2017-05-05
解析iOS開發(fā)中的FirstResponder第一響應(yīng)對象
這篇文章主要介紹了解析iOS開發(fā)中的FirstResponder第一響應(yīng)對象,包括View的FirstResponder的釋放問題,需要的朋友可以參考下2015-10-10
iOS獲取短信驗(yàn)證碼倒計(jì)時的兩種實(shí)現(xiàn)方法
本篇文章主要介紹了iOS獲取短信驗(yàn)證碼倒計(jì)時的兩種實(shí)現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
iOS Remote Notification遠(yuǎn)程消息推送處理
這篇文章主要為大家詳細(xì)介紹了iOS Remote Notification遠(yuǎn)程消息推送處理,感興趣的小伙伴們可以參考一下2016-09-09

