【问题标题】:AFNetworking + JSON and getting server statusAFNetworking + JSON 并获取服务器状态
【发布时间】: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”,然后将其放入我的故事板中。

【问题讨论】:

    标签: objective-c ios json afnetworking


    【解决方案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"];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-22
        • 2014-09-17
        • 1970-01-01
        相关资源
        最近更新 更多