AFN框架默認就是使用JSON方式來發送和響應JSON數據,但若是返回的JSON數據是嵌套的,結構更復雜,就須要本身來進行處理了,昨天在作返回設備列表的時候,就爲了解析數據拼命嘗試各類方法,一度還使用了JSONOKit框架,可是效果並不理想,結果在偶然狀況下發現AFN框架自動對返回的JSON數據作了處理,用戶拿到數據後只須要根據相應的狀況去取出來便可,下面是具體過程:java
返回來的數據: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、發送請求、解析數據以及對用戶的輸入進行基本的過濾。app