在 AFNetworking 中获取 JSON 数据
Posted
技术标签:
【中文标题】在 AFNetworking 中获取 JSON 数据【英文标题】:Taking is JSON data in AFNetworking 【发布时间】:2015-03-11 07:57:15 【问题描述】:所以我的 AFNetworking 工作得很好,我可以获取 json 数据并在 tableview 中对其进行格式化,只要将 JSON 文件作为一个名为“results”的数组。
例子:
"results": [
"title": "title",
"subtitle": "subtitle",
"description": "",
"image": ""
]
我在 xcode 中使用 AFNetworking 解析的代码是:
-(void)makeGiftRequests
NSURL *url = [NSURL URLWithString:@"http://SOMEURL.json"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
self.giftsArray = [responseObject objectForKey:@"results"];
NSLog(@"The Array: %@",self.giftsArray);
[self.tableView reloadData];
[self.refreshControl endRefreshing];
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"Request Failed: %@, %@", error, error.userInfo);
];
[operation start];
但如果 json 文件如下所示,我终生无法弄清楚如何解析它:
[
"title": "",
"subtitle:""
]
我敢肯定它非常简单,但我不是专业人士。谢谢!
【问题讨论】:
【参考方案1】:试试这个....self. giftsArray = [NSMutableArray arrayWithArray:responseobject];
【讨论】:
【参考方案2】:您从AFHTTPRequestOperation
获得的 responseObject 是id
类型,这意味着它可以是任何东西,因此您可以根据您期望的输出将它类型转换为 NSDictionary 或 NSArray。
self.giftsArray = (NSArray *)responseObject;
【讨论】:
以上是关于在 AFNetworking 中获取 JSON 数据的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking/Overcoat/Promisekit - 在错误消息中获取返回 json