0

我正在尝试使用 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”,然后将其放入我的故事板中。

4

2 回答 2

0

在 iOS 5 及更高版本中,您可以使用以下代码来获取这些值。

NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSArray *arrayServers = [dictionary valueForKey:@"servers"];
于 2012-12-04T02:14:07.563 回答
0

如果您使用 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并且应用程序将中断。

于 2012-12-04T07:44:57.987 回答