解析JSON,遇到的3840报错

作者: 云海长天 | 来源:发表于2016-11-14 18:41 被阅读253次

    解析JSon数据格式出错的问题
    打印错误信息如下:

    Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)"

    出现这种情况时,一般是json数据中的不规范造成的,json数据中也许有转义字符的出现导致了这种情况,如有/t/n/0等出现

    数据不太规范解决方法:
    1.后台修改数据

    2.自己项目中判断数据,就拿AFNetWorking这个库下载数据时的情况来说

    
    //下载需要搜索的数据
    
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    [manager GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    
    NSString * str = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];
    
    NSString * str2 = [str stringByReplacingOccurrencesOfString:@"\t" withString:@""];
    
    str2 = [str2 stringByReplacingOccurrencesOfString:@"\n" withString:@""];
    
    str2 = [str2 stringByReplacingOccurrencesOfString:@"\r" withString:@""];
    
    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:[str2 dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:nil];
    
    

    把解析得到的 NSData数据解析成为字符串形式,判断数据中是否含有这些转义字符,含有的话用空字符串替换掉,再把字符串转换为NSData类型的数据,然后进行解析为JSon数据。

    相关文章

      网友评论

        本文标题:解析JSON,遇到的3840报错

        本文链接:https://www.haomeiwen.com/subject/nhtkpttx.html