Objective-C中关于请求返回NSData数据解析成NSDictionary或NSArray的方法
2016-08-16 12:33
357 查看
1、如果后台返回的是字典或数组的data型,直接使用以下方法转换:
{
// Data 转成 字典 其中responseObject为返回的data数据
NSDictionary *resultDictionary = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
NSLog(@"resultDictionary: %@", resultDictionary);
// Data 转成 数组 其中responseObject为返回的data数据
NSArray *resultArray = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
NSLog(@"resultArray: %@", resultArray);
}
2、以上方法打印出的字典、数组值为null 时,可能返回带有其他特殊字符串,需要将返回的data数据转成字符串:
{
NSString *resultString =[[ NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
}
打印出来的字符串如下图所示:
看着打印出来的字符串,开头不是以‘{’(字典)或‘(’(数组)符号开头,而是一串字符,所以我们需要把多余的字符串删除。
{
NSString *changeStr = [StringObjects stringByReplacingOccurrencesOfString:@"renderReverse&&renderReverse(" withString:@""];
NSString *jsonStr = [changeStr substringToIndex:tempStr.length-1];
}
最后把解析string转data,再把data转 字典:
{
NSMutableDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:[jsonStr dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
}
最后把字典输出查看是否还是空。
{
// Data 转成 字典 其中responseObject为返回的data数据
NSDictionary *resultDictionary = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
NSLog(@"resultDictionary: %@", resultDictionary);
// Data 转成 数组 其中responseObject为返回的data数据
NSArray *resultArray = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
NSLog(@"resultArray: %@", resultArray);
}
2、以上方法打印出的字典、数组值为null 时,可能返回带有其他特殊字符串,需要将返回的data数据转成字符串:
{
NSString *resultString =[[ NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
}
打印出来的字符串如下图所示:
看着打印出来的字符串,开头不是以‘{’(字典)或‘(’(数组)符号开头,而是一串字符,所以我们需要把多余的字符串删除。
{
NSString *changeStr = [StringObjects stringByReplacingOccurrencesOfString:@"renderReverse&&renderReverse(" withString:@""];
NSString *jsonStr = [changeStr substringToIndex:tempStr.length-1];
}
最后把解析string转data,再把data转 字典:
{
NSMutableDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:[jsonStr dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
}
最后把字典输出查看是否还是空。
相关文章推荐
- Objective-C中关于请求返回NSData数据解析成NSDictionary或NSArray的方法
- HTTP请求数据返回解析Josn org.codehaus.jackson.map.JsonMappingException的解决方法
- XML格式数据请求的解析与返回XML数据的组织方法
- Jquery Ajax学习实例3-向WebService发出请求,调用方法返回数据
- IOS请求php返回的数据JSON数据无法正确解析 utf-8格式
- jQuery.get方法请求JSON数据,解析JSON数据 注意事项
- 初涉Ajax,以post或get方法发送数据,以json或xml形式接收服务器返回的请求
- js unicode 编码解析关于数据转换为中文的两种方法
- jqury+ajax每秒向后台发送请求数据然后返回页面(包括jqruy页面加载完毕才执行方法)
- ajax中解析json数据的各种方法(返回类型为json或text)
- 安卓ksoap2获取.net webservice后返回DateSet型的数据的解析方法
- 使用AFNetworking框架进行post 请求解析返回得数据
- Jquery ajax方法解析返回的json数据
- ajax请求解析springmvc返回的json数据
- 关于ResultSet.execute()方法返回值的解析!!!
- Objective-C NSString、NSArray、NSDictionary、NSData 存取至Document
- 关于ajax请求数据不能刷新的解决方法
- php解析请求url并返回json数据
- 使用jquery Ajax的post方法或直接使用jqery ajax请求action 得到返回的json数据
- 关于VB调用Access的Rnd函数随机返回表中数据的解决方法