2015-10-12 54 views
-2

我是iOS開發新手,我的問題是當我解析數據時,比只顯示上面的值顯示的數值沒有顯示。請解決我的問題。 數組名稱city info獲得3值,但是當我想要顯示它們時,它會給出onle數組的最後一個值。只獲取字典的最後一個值

-(void)connectionDidFinishLoading:(NSURLConnection *)connection { 
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:WebData1 options:0 error:0]; 
    NSArray *city_info = [json objectForKey:@"city_info"]; 
    for(NSDictionary *dic in city_info) { 
     NSMutableArray *vlcc_service_name = [dic objectForKey:@"vlcc_service_name"]; 

     Centers = [[NSMutableArray alloc]initWithObjects:vlcc_service_name, nil]; 
    } 
    // NSLog(@"%@", vlcc_service_name); 
    NSLog(@"%@", Centers); 
    [_CenterTableView reloadData]; 
} 
+0

的請求給你 「city_info」 的JSON值澄清 – Jamil

+0

JSON數據 city_info vlcc_service_name: 「減肥」 vlcc_service_name: 「美容院」 vlcc_service_name: 「體育」 –

+0

此非常簡單。但是您沒有提供適當的信息來解決您的問題。 – Jamil

回答

0

請試試這個。

-(void)connectionDidFinishLoading:(NSURLConnection *)connection { 
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:WebData1 options:0 error:0]; 
    NSArray *city_info = [json objectForKey:@"city_info"]; 
    NSMutableArray *Centers = [[NSMutableArray alloc]init]; 
    for(NSDictionary *dic in city_info) { 
    NSString *vlcc_service_name = [dic objectForKey:@"vlcc_service_name"]; 
    /NSLog(@"%@", vlcc_service_name); 
    [Centers addObject: vlcc_service_name]; 
    } 

NSLog(@"%@", Centers); 
[_CenterTableView reloadData]; 
} 
+0

這是我寫的代碼。但未經測試。如果它不能解決你的問題,那麼請給我提供url – Jamil

+0

@ jami65able -yeah它的工作。感謝很多,但它只顯示nslog中的數據,而不是在表格視圖中。幫助 –

+0

- 您能否向我發送您的郵件ID。 –

3

NSDictionaries是無序的,沒有第一個或最後一個元素。事實上,即使在特定字典的生命週期中,密鑰的順序也不能保證是相同的。

如果你想要的任何對象,你可以得到的關鍵之一:

id key = [[json allKeys] objectAtIndex:0]; // ensure that your 'json' is not empty 
id object = [json objectForKey:key]; 

選擇 - 2

數組,你可以得到所有對象

Centers = [NSMutableArray new]; // allocate the memory on outside the Loop 
for(NSDictionary *dic in city_info) { 

    [Centers addObject: [dic objectForKey:@"vlcc_service_name"]]; 
} 

NSLog(@"the last object=%@", [Centers lastObject]); 
// else 
    NSLog(@"the last object=%@", [yourArray objectAtIndex:[Centers count] - 1];); 
+0

先生。我理解你的理論,但你的代碼我沒有得到..請給我其他邏輯來做到這一點。謝謝 –

+0

@HarshRajput - 檢查更新的答案 –

0
-(void)connectionDidFinishLoading:(NSURLConnection *)connection { 
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:WebData1 options:0 error:0]; 
    NSArray *city_info = [json objectForKey:@"city_info"]; 
    NSMutableArray *Centers = [NSMutableArray array]; 

    for(NSDictionary *dic in city_info) { 
     NSMutableArray *vlcc_service_name = [dic objectForKey:@"vlcc_service_name"]; 

     [Centers addObjectsFromArray:vlcc_service_name]; 
    } 

    // NSLog(@"%@", vlcc_service_name); 
    NSLog(@"%@", Centers); 

    [_CenterTableView reloadData]; 
} 
+0

@lulian它顯示異常: - 終止應用程序,由於未捕獲的異常'NSInvalidArgumentException',原因:' - [__ NSCFString計數]:無法識別的選擇器發送到實例 –

+0

@HarshRajput,我已更新我的回答。 –

+0

@ lulian它也給出異常:-reason:'*** - [NSMutableArray addObjectsFromArray:]:數組參數不是一個NSArray' –

0

你可以做到這一點,沒有任何for loop。這樣做: NSMutableArray *Centers = [[NSMutableArray alloc]initwithArray:city_info];

相關問題