2013-12-20 38 views
0

我正在開發一個iOS項目,它將顯示一個人的關注者。 有一個Web服務器正在運行,它從不同的社交網絡獲取數據,並使用Timestamp將它們保存到SQL數據庫中。 iOS應用程序發出請求並從Sql數據庫獲取Json。我將Json轉換爲一個Array並將其打印到控制檯。如何從JsonArray中獲得NSDictonarys?

NSString *url = [NSString stringWithFormat:@"http://getdata.php"]; 
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]]; 

NSError *error; 
NSArray *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; 
NSLog(@"%@",json); 

輸出:

(
    { 
    date = "2013-12-11"; 
    facebook = 107; 
    instagram = 47; 
    twitter = 42; 
}, 
    { 
    date = "2013-12-12"; 
    facebook = 107; 
    instagram = 45; 
    twitter = 42; 
}, 
    { 
    date = "2013-12-13"; 
    facebook = 107; 
    instagram = 45; 
    twitter = 42; 
}) 

所以我想要做的是,就是比較了Facebook,Instagram的一個Twitter的追隨者與前一天。我怎麼能這樣做:獲取整個對象,其中日期是今天。它會打印出來:

date = "2013-12-13"; 
    facebook = 107; 
    instagram = 45; 
    twitter = 42; 

感謝您的幫助和對我的英語感到抱歉!

+0

您是否嘗試過使用NSDictionary而不是NSArray? – nickAtStack

+0

你有什麼是NSDictionary對象的NSArray。要獲取NSDictionary,請索引該數組。 –

+0

@nickAtStack - 這隻會誤導對象並進一步混淆事物。 –

回答

1

您可以使用簡單的for循環來枚舉數組中的所有字典。爲了比較每一天到前一天,你必須開始索引1,如下所示:

for (NSUInteger i = 1; i < json.count; i++) { 
    NSDictionary *currentDay = json[i]; 
    NSDictionary *previousDay = json[i-1]; 

    // Compare the follower counts for each social network here 
} 
+0

這是一個完美的想法,它的工作!但萬一網絡服務器沒有更新這些值。它需要從前一天的價值。有沒有辦法查找日期?如果date = today獲得Dictionary? – user3123470

+0

@ user3123470是的,有,但這是一個不同的問題,所以應作爲一個單獨的問題。 – neilco

+0

_我該怎麼做:獲取整個對象,其中Date是Today._這是我的問題的一部分,但如果你能回答第二個問題,那將會很好。 – user3123470