在 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

从 AFNetworking 获取非 json 内容

AFNetworking 3.0 未从响应中获取 json

AFNetworking:从 Http 响应中获取 JSON 值

AFNetworking + JSON 并获取服务器状态

从 AFNetworking 获取 JSON 文件或信息