IOS json 解析遇到錯誤問題解決辦法
概要:
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn't be completed. (Cocoa error 3840.)" (Unescaped control character around character 1419.) UserInfo=0x1563cdd0 {NSDebugDescription=Unescaped control character around character 1419.}
之前解析json的時候都是標(biāo)準(zhǔn)格式,json數(shù)據(jù)當(dāng)中沒有 \n \r \t 等制表符。
今天在解析的時候發(fā)現(xiàn)json解析時好時壞,用在線json解析也米有問題。找了半天終于發(fā)現(xiàn)是制表符在作怪,由于標(biāo)準(zhǔn)的json解析是不允許有這幾個制表符的。所以在收到保溫的時候我們需要把這幾個制表符給過濾掉。
NSString * responseString = [request responseString];
responseString = [responseString stringByReplacingOccurrencesOfString:@"\r\n" withString:@""];
responseString = [responseString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
responseString = [responseString stringByReplacingOccurrencesOfString:@"\t" withString:@""];
NSLog(@"responseString = %@",responseString);
SBJsonParser *parser = [[[SBJsonParser alloc]init] autorelease];
id returnObject = [parser objectWithString:responseString];
NSDictionary *userInfo = nil;
NSArray *userArr = nil;
if ([returnObject isKindOfClass:[NSDictionary class]]) {
if (userInfo) {
[userArr release];
}
userInfo = (NSDictionary*)returnObject;
}
else if ([returnObject isKindOfClass:[NSArray class]]) {
userArr = (NSArray*)returnObject;
}
NSError* e = nil;
//系統(tǒng)自帶的解析方式。
NSDictionary * userInfo = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableLeaves error:&e];
if (e) {
NSLog(@"%@",e);
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- iOS中json解析出現(xiàn)的null,nil,NSNumber的解決辦法
- IOS中Json解析實(shí)例方法詳解(四種方法)
- iOS json解析出錯的幾種情況總結(jié)
- iOS開發(fā)使用JSON解析網(wǎng)絡(luò)數(shù)據(jù)
- 詳解iOS開發(fā)中解析JSON中的boolean類型的數(shù)據(jù)遇到的問題
- IOS?簡單的本地json格式文件解析的實(shí)例詳解
- IOS開發(fā)之JSON轉(zhuǎn)PLIST實(shí)例詳解
- iOS Swift讀取本地json文件報錯的解決方法
- 談?wù)刬OS開發(fā)之JSON格式數(shù)據(jù)的生成與解析
- iOS讀寫json文件的方法示例
相關(guān)文章
KVO實(shí)現(xiàn)自定義文件復(fù)制進(jìn)度效果
這篇文章主要為大家詳細(xì)介紹了KVO實(shí)現(xiàn)自定義文件復(fù)制進(jìn)度效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
IOS獲取當(dāng)前版本號 Bundle ID等信息的方法詳解
這篇文章主要介紹了IOS獲取當(dāng)前版本號 Bundle ID等信息的方法詳解的相關(guān)資料,需要的朋友可以參考下2016-12-12
詳解使用Xcode進(jìn)行iOS設(shè)備無線調(diào)試
這篇文章主要介紹了詳解使用Xcode進(jìn)行iOS設(shè)備無線調(diào)試,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
ios實(shí)現(xiàn)底部PopupWindow的示例代碼(底部彈出菜單)
這篇文章主要介紹了ios實(shí)現(xiàn)底部PopupWindow的示例代碼(底部彈出菜單),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01
iOS mobileconfig配置文件進(jìn)行簽名的配置方法
這篇文章主要介紹了iOS mobileconfig配置文件進(jìn)行簽名的配置方法,給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
iOS開發(fā)之?dāng)?shù)字每隔3位用逗號分隔
以前在做電商app時經(jīng)常會針對稍大的金額展示出來,需要每隔千位添加逗號便于用戶識別,下面通過本文給大家分享ios中數(shù)字每隔3位用逗號分隔的實(shí)例代碼,需要的朋友參考下吧2017-09-09

