这样的我是文章后面出现了换行符,这是一个json类型的字符串,需要恢复成json字典类型,但是JSON是不能解析带有换行符字符串 所以方法如下:
- (void)getDataForUrlTwo{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
//字符串类型数据接收方式
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
NSString *stringURL =[NSString stringWithFormat:@"http://xxx.xx.xx.xxx:xxxx/infocms/csi_custom.jspx?tpl=getContentData&contentId=565"];
[manager GET:stringURL parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
// NSLog(@"%@",responseObject);
NSString *shabi = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];
// NSLog(@"sha%@",shabi);
NSString *hah = [self ReplacingNewLineAndWhitespaceCharactersFromJson:shabi];
// NSLog(@"%@",hah);
NSString *lala = [hah stringByReplacingOccurrencesOfString:@"|" withString:@""];
NSData *jsonData = [lala dataUsingEncoding:NSUTF8StringEncoding];
NSError *err;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:&err];
if(err) {
NSLog(@"json解析失败:%@",err);
}
//数组不断的加进数据,从而达到和上拉加载和cell的indexpath的配合。
// NSArray *array = dic[@"data"];
NSLog(@"%@",dic);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
// UIAlertView *alertViewTwo = [[UIAlertView alloc] initWithTitle:@"消息提示" message:@"网络超时" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil,nil];
// [alertViewTwo show];
}];
}
//去掉换行符
- (NSString *)ReplacingNewLineAndWhitespaceCharactersFromJson:(NSString *)dataStr{
NSScanner *scanner = [[NSScanner alloc] initWithString:dataStr];
[scanner setCharactersToBeSkipped:nil];
NSMutableString *result = [[NSMutableString alloc] init];
NSString *temp;
NSCharacterSet *newLineAndWhitespaceCharacters = [ NSCharacterSet newlineCharacterSet];
// 扫描
while (![scanner isAtEnd])
{
temp = nil;
[scanner scanUpToCharactersFromSet:newLineAndWhitespaceCharacters intoString:&temp];
if (temp) [result appendString:temp];
// 替换换行符
if ([scanner scanCharactersFromSet:newLineAndWhitespaceCharacters intoString:NULL]) {
if (result.length > 0 && ![scanner isAtEnd]) // Dont append space to beginning or end of result
[result appendString:@"|"];
}
}
return result;
}