解決JSON數(shù)據(jù)因?yàn)閚ull導(dǎo)致數(shù)據(jù)加載失敗的方法
一、首先分析問題:
使用NSJSONSerialization或者AFN框架的AFHTTPSessionManager(底層也是NSJSONSerialization)將NSData數(shù)據(jù)轉(zhuǎn)化成OC對(duì)象,有時(shí)會(huì)出現(xiàn)URL正確,加載數(shù)據(jù)任然會(huì)報(bào)錯(cuò):
reason: '-[NSNull length]: unrecognized selector sent to instance
分析原因發(fā)現(xiàn),轉(zhuǎn)化出來的OC對(duì)象中含有null.所以,NSNull沒有l(wèi)ength方法,所以會(huì)報(bào)找不到方法錯(cuò)誤。
二、解決辦法:將"null"替換成“ ”。
1.先將NSData數(shù)據(jù)轉(zhuǎn)化成NSString;
2.再對(duì)轉(zhuǎn)化好的NSString進(jìn)行替換;
3.替換好的NSSting再轉(zhuǎn)化成NSData;
4.NSData轉(zhuǎn)化成OC對(duì)象
下面提供一個(gè)封裝好的方法,以后直接使用就好了
//替換數(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];
}
傳入一個(gè)含有null的OC數(shù)組,直接返回替換過的新數(shù)組。用不含null的數(shù)組再去加載數(shù)據(jù),就不會(huì)有問題了。
好了,以上就是解決JSON數(shù)據(jù)因?yàn)閚ull導(dǎo)致數(shù)據(jù)加載失敗的方法,希望對(duì)有需要的朋友們有所幫助,如果有疑問打擊可以留言交流。
- Javascript中判斷一個(gè)值是否為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對(duì)象初始值示例
- Javascript Boolean、Nnumber、String 強(qiáng)制類型轉(zhuǎn)換的區(qū)別詳細(xì)介紹
- JavaScript基本類型值-Undefined、Null、Boolean
相關(guān)文章
ios啟動(dòng)頁強(qiáng)制豎屏(進(jìn)入App后允許橫屏與豎屏)
最近工作遇到這樣一個(gè)需要,當(dāng)進(jìn)入啟動(dòng)頁需要強(qiáng)制豎屏,而進(jìn)入APP后就允許橫屏與豎屏,通過查找相關(guān)的資料找到了解決的方法,所以將實(shí)現(xiàn)的方法整理后分享出來,需要的朋友們可以參考借鑒,下面來一起看看吧。2017-03-03
IOS 通過tag刪除動(dòng)態(tài)創(chuàng)建的UIButton
這篇文章主要介紹了IOS 通過tag刪除動(dòng)態(tài)創(chuàng)建的UIButton的相關(guān)資料,需要的朋友可以參考下2017-03-03
iOS實(shí)現(xiàn)點(diǎn)贊動(dòng)畫特效
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)點(diǎn)贊動(dòng)畫特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01
iOS16使用SwiftUI Charts創(chuàng)建折線圖實(shí)現(xiàn)實(shí)例
這篇文章主要為大家介紹了iOS16使用SwiftUI Charts創(chuàng)建折線圖實(shí)現(xiàn)實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
iOS Webview自適應(yīng)實(shí)際內(nèi)容高度的4種方法詳解
這篇文章主要介紹了iOS Webview自適應(yīng)實(shí)際內(nèi)容高度的4種方法詳解,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09

