iOS如何过滤网络数据中的换行符
2015-03-23 18:19
363 查看
这样的我是文章后面出现了换行符,这是一个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;
}
相关文章推荐
- IOS-50-微信朋友圈一片模糊,教你在Mac和window系统下如何实现网络数据抓包
- iOS charles 如何抓取虚拟机内的网络数据
- iOS系统如何实现网络数据抓包
- iOS开发:过滤网络请求中,服务器返回空值null数据的处理(过滤null显示问题)
- iOS网络编程-iCloud键值数据存储编程实例
- iOS如何在工程中使用第三方(网络)图片
- 【iOS】Moya网络层 + ObjectMapper数据转模型
- iOS后台如何保持socket长连接和数据传输
- iOS 从网络获取数据
- 在数据窗口过滤以后,计算列值如何才能一起改变?
- iOS网络编程-ASIHTTPRequest小例子-数据请求队列
- iOS 过滤后台传递 其他Json数据类型【过滤非字符串类型】
- iOS网络监测如何区分2、3、4G?
- iOS基础网络教程-Swift版本: 2.使用UIWebView请求数据
- iOS网络 把数据存入钥匙串
- iOS网络-02-数据解析(JSON与XML)
- iOS 带缓存,带网络监控的数据请求
- iOS开发网络数据之AFNetworking使用
- iOS中MD5加密与网络数据安全
- 全球网络攻击1/3在中国,安全专家教你如何保护大数据隐私!