iOS:从服务器请求数据,解析Json字符串报错问题的处理

今天进行老项目的改版,界面已经搭建完成,就差和后台进行数据对接,但是接下来悲剧的事情发生了:获取到数据流转为json格式数据时报错了,安卓那边可以获取json数据,但是iOS端一直报错,无法进行解析
打印错误信息如下:
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)"
将data数据转为字符串打印发现,在这条字符串的前面有空格部分,这部分是一些制表符

NSString *messageInfo = [[NSString alloc]initWithData:response encoding:NSUTF8StringEncoding];
NSLog(@"sss%@sss", messageInfo);
messageInfo = [messageInfo stringByReplacingOccurrencesOfString:@"\r\n" withString:@"" ];
messageInfo = [messageInfo stringByReplacingOccurrencesOfString:@"\n" withString : @"" ];
messageInfo = [messageInfo stringByReplacingOccurrencesOfString:@"\t" withString : @"" ];
NSLog(@"%@", messageInfo);

经过上面这些公式处理后,就可以获得json格式的字符串了

NSDictionary *responseObject = [NSString dictionaryWithJsonString:messageInfo];
/*!
 * @brief 把格式化的JSON格式的字符串转换成字典
 * @param jsonString JSON格式的字符串
 * @return 返回字典
 */
+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString {
    if (jsonString == nil) {
        return nil;
    }
    
    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *err;
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
                                                        options:NSJSONReadingMutableContainers
                                                          error:&err];
    if(err) {
        NSLog(@"json解析失败:%@",err);
        return nil;
    }
    return dic;
}

这样就可以获取到字典格式的数据了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、xcode Build 成功,但是不会运行到模拟器 背景:github 上下载一个开源项目,使用了CocoPo...
    清蘂翅膀的技术阅读 6,611评论 1 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,256评论 19 139
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,022评论 0 15
  • 黑猫公园 小区衰老了,也渐渐安静了,像一位坐着轮椅晒着冬阳的老人。以前小区的住户都是贵气时髦的,曾经的热热闹闹的小...
    小锂阅读 271评论 0 3
  • sookiss:老师你好:我是听您《瑜伽师地论》的那位希望您能用更通俗的话演讲的那位听众。感谢您百忙之中抽看这封封...
    时光波阅读 565评论 0 1