2011-07-29 19 views
0

我已經使用了web服務並獲得了JSON響應。我想從數組中提取細節。如何從iPhone中的JSON格式的數組中提取字符串?

這裏我的示例代碼,

NSString *urlDataString = [[NSString alloc] initWithData:receiveData encoding:NSUTF8StringEncoding]; 
    SBJSON *parser = [[SBJSON alloc] init]; 
    NSError *error = nil; 
    self.customArray = [parser objectWithString:urlDataString error:&error]; 

    for (NSDictionary *feedItem in customArray) 
    {   
     NSString *listDeals = [feedItem objectForKey:@"ListOfDeals"]; 
     [tempArray addObject:listDeals]; 
    } 

如果我已經使用上面的代碼的所有的字符串存儲到臨時陣列和陣列值1但我想存儲的數據是是單獨的索引所以我必須使用索引位置來獲取詳細信息。

如果我使用這個樣子,

for (NSDictionary *feedItem in self.dollarArray) 
    {   
     NSString *listDeals = [[feedItem objectForKey:@"ListOfDeals"] valueForKey:@"Description"]; 
     [tempArray addObject:listDeals]; 
    } 

我從tempArray所有描述值,但我想一切從陣列中的字符串。

其實我期待的臨時數組數3,並希望得到像

NSLog(@"%@",[tempArray ObjectAtIndex:0]); 

      { 
        BusId = 14; 
        Description = "Sample data" 
        Id = 60; 
        StartTime = "7/28/2011 8:30:00 PM"; 
       }, 

這裏我的示例響應值,

(
      ListOfDetails =   (
          { 
        BusId = 14; 
        Description = "Sample data" 
        Id = 60; 
        StartTime = "7/28/2011 8:30:00 PM"; 
       }, 
          { 
        BusId = 16; 
        Description = "Test data" 
        Id = 62; 
        StartTime = "7/29/2011 8:30:00 PM"; 
       }, 
          { 
        BusId = 15; 
        Description = "Test" 
        Id = 61; 
        StartTime = "7/27/2011 8:30:00 PM"; 
       }, 
    ) 

所以,我該怎麼辦呢?請指導我。

謝謝!

回答

2
for (NSDictionary *feedItem in self.dollarArray){ 

    for (NSMutableArray *vijayTemp in [feedItem objectForKey:@"ListOfDeals"]) { 

     [tempArray addObject:vijayTemp]; 

    } 

} 
+0

爲什麼選擇NSMutableArray? –

+0

@vijay,我認爲你沒有弄清我的問題 – Pugal

+0

更新thala驗證 –

1
for (NSDictionary *feedItem in self.dollarArray) 
    {   
     NSDictionary *listDeals = [[feedItem objectForKey:@"ListOfDeals"] valueForKey:@"Description"]; 
    [tempArray addObject:listDeals]; // Gets description 
    listDeals = [[feedItem objectForKey:@"ListOfDeals"] valueForKey:@"BusId"]; 
    [tempArray addObject:listDeals]; // Gets BusId 
    listDeals = [[feedItem objectForKey:@"ListOfDeals"] valueForKey:@"Id"]; 
    [tempArray addObject:listDeals]; // Gets Id 
    listDeals = [[feedItem objectForKey:@"ListOfDeals"] valueForKey:@"StartTime"]; 
    [tempArray addObject:listDeals]; // Gets StartTime 

    } 

另外,您可以使用從[feedItem objectForKey:@"ListOfDeals"]回報這是所有4個值的字典。您可以像上面那樣保存它們,或者使用NSLog和%@格式說明符來打印它們。

編輯:

可以使用allvalues方法創建從字典中的數組。我想這應該回答你的問題。

NSArray *tempArray = [dictionary allvalues]; 


allValues 
Returns a new array containing the dictionary’s values. 

- (NSArray *)allValues 
+0

感謝您的答覆。我知道這種方式,但是我有超過15個字符串,所以這將需要更多的代碼。 SO是否可以將所有字符串存儲到數組索引位置?不使用like,listDeals = [[feedItem objectForKey:@「ListOfDeals」] valueForKey:@「Id」]; [tempArray addObject:listDeals]; //獲取Id – Pugal

+0

像你想要什麼索引? –

+0

其實我想存儲所有的字符串到數組,所以我可以訪問字符串,無論我必須使用像這樣[[tempArray objectAtIndex:0] objectForKey:@「Description」]和[[tempArray objectAtIndex:2] objectForKey:@「StartTime」] – Pugal

相關問題