2012-12-04 114 views
0

我想從使用JSON的網站調用數據。AFNetworking + JSON和獲取服務器狀態

到目前爲止,我可以設法獲得完整的數據。不過,我試圖從JSON輸入中獲得特定的選項。

什麼我越來越:

{ 
"servers": { 
"CA Servers": { 
"Can One": { 
"status": "medium" 
}, 

"Can Two": { 
"status": "medium" 
} 
}, 

"US Servers": { 
"US One": { 
"status": "down" 
}, 
"US Two": { 
"status": "high" 
} 
} 
} 
} 

我不知道如何我可以從可以在一個從美國一拉只是「中等」和「高」從美國的兩個或「向下」 ,並將其放入我的故事板。

回答

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,應用程序將中斷。

+0

作品完美,謝謝。 – Velkyr

0

在iOS 5及更高版本中,您可以使用以下代碼來獲取這些值。

NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 
NSArray *arrayServers = [dictionary valueForKey:@"servers"];