亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

iOS json解析出錯的幾種情況總結

 更新時間:2017年01月17日 09:03:50   投稿:lqh  
這篇文章主要介紹了iOS json解析出錯的幾種情況總結的相關資料,需要的朋友可以參考下

iOS json解析出錯

對于json格式,我們并不陌生,但是因為它處于不同的語言標準也不一致。分享一下最近項目出現的json問題:

1、編碼問題,在不清楚服務端的編碼格式的情況下,我直接使用:

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]; 
NSError *error = nil; 
NSArray *arr = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]; 

結果發(fā)現data是有數據的,但是arr是nil,找到error:The operation couldn't be completed. (Cocoa error 3840.)后來問了一下后臺開發(fā),因為存在中文,他采用了GBK編碼,通過搜索uft8轉gbk找到了答案:

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]; 
NSError *error = nil; 
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); 
NSString *dataString = [[NSString alloc] initWithData:data encoding:enc]; 
NSData *utf8Data = [dataString dataUsingEncoding:NSUTF8StringEncoding]; 
NSArray *arr = [NSJSONSerialization JSONObjectWithData:utf8Data options:NSJSONReadingMutableContainers error:&error]; 

2、json非標準格式:(比如json數據存在\n \r \t 等制表符)閱讀原文

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]; 
NSError *error = nil; 
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); 
NSString *dataString = [[NSString alloc] initWithData:data encoding:enc]; 
//json數據當中沒有 \n \r \t 等制表符,當后臺給出有問題時,我們需要對json數據過濾 
 dataString = [dataString stringByReplacingOccurrencesOfString:@"\r\n" withString:@""]; 
 dataString = [dataString stringByReplacingOccurrencesOfString:@"\n" withString:@""]; 
 dataString = [dataString stringByReplacingOccurrencesOfString:@"\t" withString:@""]; 
 
NSData *utf8Data = [dataString dataUsingEncoding:NSUTF8StringEncoding]; 
NSArray *arr = [NSJSONSerialization JSONObjectWithData:utf8Data options:NSJSONReadingMutableContainers error:&error]; <span style="font-family: Arial, Helvetica, sans-serif;"> </span> 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • iOS自定義滑桿效果

    iOS自定義滑桿效果

    這篇文章主要為大家詳細介紹了iOS自定義滑桿效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • iOS10適配(必看)

    iOS10適配(必看)

    這篇文章主要介紹了iOS10適配(必看)的相關資料,本文圖文并茂介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • iOS App使用設計模式中的模板方法模式開發(fā)的示例

    iOS App使用設計模式中的模板方法模式開發(fā)的示例

    這篇文章主要介紹了iOS應用使用設計模式中的模板方法模式開發(fā)的示例,例子代碼為Objective-C語言,文中還與Java的相關實現進行類比,需要的朋友可以參考下
    2016-03-03
  • iOS中利用CAEmitterLayer實現粒子動畫詳解

    iOS中利用CAEmitterLayer實現粒子動畫詳解

    粒子效果應該對現在很多人來說并不陌生,我們之前也分享了一些相關文章,下面這篇文章主要給大家介紹了關于iOS中利用CAEmitterLayer實現粒子動畫的相關資料,文中介紹的非常詳細,需要的朋友們下面來一起看看吧。
    2017-06-06
  • 詳解IOS中如何實現瀑布流效果

    詳解IOS中如何實現瀑布流效果

    說到瀑布流, 或許大家都不陌生, 瀑布流的實現也有很多種! 從scrollView 到 tableView 書寫的瀑布流, 然后再到2012年iOS6 蘋果API新加進的collectionView進行的瀑布流封裝! 確實,不論是寫起來還是用起來都要方便很多!那么下面一起來看看IOS中具體如何實現瀑布流效果。
    2016-08-08
  • iOS10適配問題及解決方法 新鮮出爐!

    iOS10適配問題及解決方法 新鮮出爐!

    這篇文章主要為大家詳細介紹了iOS 10適配問題,總結了一些關于iOS10適配方面的問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • IOS 開發(fā)之swift中UIView的擴展使用的實例

    IOS 開發(fā)之swift中UIView的擴展使用的實例

    這篇文章主要介紹了IOS 開發(fā)之swift中UIView的擴展使用的實例的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • iOS的UI開發(fā)中UITabBarControlle的基本使用教程

    iOS的UI開發(fā)中UITabBarControlle的基本使用教程

    這篇文章主要介紹了iOS的UI開發(fā)中UITabBarControlle的基本使用教程,代碼基于傳統的Objective-C,需要的朋友可以參考下
    2015-12-12
  • iOS 二維碼掃描和應用跳轉

    iOS 二維碼掃描和應用跳轉

    本文講解如何使用原生框架實現二維碼掃描功能,并且進行掃描后的項目跳轉。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • 關于iOS屏幕旋轉的一些注意事項

    關于iOS屏幕旋轉的一些注意事項

    這篇文章主要給大家介紹了關于iOS屏幕旋轉的一些注意事項,文中通過一步步的步驟介紹的很詳細,相信對大家的學習或者工作具有一定的參考借鑒價值,有需要的朋友可以參考學習,下面來一起看看吧。
    2017-01-01

最新評論