如何在iPhone中以JSON格式从Array中提取字符串?

时间:2011-07-29 12:57:11

标签: iphone json nsmutablearray

我使用过Web服务并以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 个答案:

答案 0 :(得分:2)

for (NSDictionary *feedItem in self.dollarArray){

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

        [tempArray addObject:vijayTemp];

    }

 }

答案 1 :(得分: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