AFN框架默认就是使用JSON方式来发送和响应JSON数据,但如果返回的JSON数据是嵌套的,结构更复杂,就需要自己来进行处理了,昨天在做返回设备列表的时候,就为了解析数据拼命尝试各种方法,一度还使用了JSONOKit框架,但是效果并不理想,结果在偶然情况下发现AFN框架自动对返回的JSON数据做了处理,用户拿到数据后只需要根据相应的情况去取出来即可,下面是具体过程:
返回来的数据:
{"result":"OK","rows":[["Hhb","452019131269330"]]}
解析代码:
[HHHttpTool getJSON:url parame:params success:^(id responseObj) {
HHLog(@"-----------%@",responseObj);
NSLog(@"json.result:%@", [responseObj objectForKey:@"result"]);
NSLog(@"json.rows:%@", [responseObj objectForKey:@"rows"]);
NSMutableArray *rows = [responseObj objectForKey:@"rows"];
for (NSMutableArray * obj in rows)
{
int i = 0;
HHLog(@"输出对象数组:%@", rows);
// for (NSMutableArray * obj2 in object)
// {
// NSLog(@"输出对象数组:%@", obj2);
//
// }
// 创建模型
HHDevice *device = [HHDevice deviceWithNickName:obj[i] IMSI:obj[i+1]];
// 保存数据到数组中
[self.device addObject:device];
// 刷新表格
[self.tableView reloadData];
i += 1;
}
} failure:^(NSError *error) {
HHLog(@"error %@",error);
}];
在移动应用中,最重要的一项就是如何有效的去解析数据,因为移动设备本身限制了应用去做更多的工作,app大概只需要做这几件事:显示UI、发送请求、解析数据以及对用户的输入进行基本的过滤。