今天進(jìn)行老項(xiàng)目的改版,界面已經(jīng)搭建完成,就差和后臺(tái)進(jìn)行數(shù)據(jù)對(duì)接,但是接下來(lái)悲劇的事情發(fā)生了:獲取到數(shù)據(jù)流轉(zhuǎn)為json格式數(shù)據(jù)時(shí)報(bào)錯(cuò)了,安卓那邊可以獲取json數(shù)據(jù),但是iOS端一直報(bào)錯(cuò),無(wú)法進(jìn)行解析
打印錯(cuò)誤信息如下:
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)"
將data數(shù)據(jù)轉(zhuǎn)為字符串打印發(fā)現(xiàn),在這條字符串的前面有空格部分,這部分是一些制表符
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);
經(jīng)過(guò)上面這些公式處理后,就可以獲得json格式的字符串了
NSDictionary *responseObject = [NSString dictionaryWithJsonString:messageInfo];
/*!
* @brief 把格式化的JSON格式的字符串轉(zhuǎn)換成字典
* @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;
}
這樣就可以獲取到字典格式的數(shù)據(jù)了