2011-07-29 20 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

相关问题