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 中获取 JSON 数据

AFNetworking 2 - 获取错误 json 正文 [重复]

AFNetworking:从 Http 响应中获取 JSON 值

AFNetworking/Overcoat/Promisekit - 在错误消息中获取返回 json

从 AFNetworking 获取 JSON 文件或信息

AFNetworking 2.0 从故障块中的代码 400 获取 JSON