AFNetworking + JSON 并获取服务器状态
Posted
技术标签:
【中文标题】AFNetworking + JSON 并获取服务器状态【英文标题】:AFNetworking + JSON and getting server status 【发布时间】:2012-12-04 01:24:07 【问题描述】:我正在尝试使用 JSON 从网站调用数据。
到目前为止,我可以设法获得完整的数据。但是,我正在尝试从 JSON 输入中获取特定选项。
我得到了什么:
"servers":
"CA Servers":
"Can One":
"status": "medium"
,
"Can Two":
"status": "medium"
,
"US Servers":
"US One":
"status": "down"
,
"US Two":
"status": "high"
我想知道如何仅从 Can One 中提取“中等”,从 US 2 中提取“High”,或者从 US One 中提取“Down”,然后将其放入我的故事板中。
【问题讨论】:
【参考方案1】:如果您使用 AFNetworking 和 AFJSONRequestOperation
,在您的 success
回调中,您应该有一个这样的 JSON 对象:
...
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
// Use JSON as an NSDictionary
NSString *status = JSON[@"servers"][@"CA Servers"][@"Can One"][@"status"];
...
然后您可以在情节提要中使用status
变量。另请记住,如果您使用我的示例访问字典,则应检查该结构是否存在。否则,如果任何字段不存在,访问器将返回nil
,应用程序将中断。
【讨论】:
【参考方案2】:在 ios 5 及更高版本中,您可以使用以下代码获取这些值。
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSArray *arrayServers = [dictionary valueForKey:@"servers"];
【讨论】:
以上是关于AFNetworking + JSON 并获取服务器状态的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking 2 - 获取错误 json 正文 [重复]
AFNetworking:从 Http 响应中获取 JSON 值