如何解析JSON

时间:2013-04-30 08:47:01

标签: objective-c json parsing

如何在一个数组上解析下面的“选择”意味着当我在数组中得到“id”时,所有id值108,109 ....在数组的第一个索引中,但这里是选择中的5个值。所以如何解析它

choices = (
              {
                  id = 108;
                  label = Distributor;
              },
              {
                  id = 109;
                  label = "Clinical Lab";
              },
              {
                  id = 110;
                  label = Researcher;
              },
              {
                  id = 111;
                  label = "Current Customer";
              },
              {
                  id = 112;
                  label = "Past Customer";
              }
          );

4 个答案:

答案 0 :(得分:2)

单步进入兄弟

如果您的数组是NSMutableArray,请使用

NSArray *resultArray =  [[NSArray arrayWithArray:temp] valueForKeyPath:@"id"]

如果简单NSArray,则使用

NSArray *resultArray = [jsonArray valueForKeyPath:@"id"]

答案 1 :(得分:1)

您可以使用fast enumeration

NSMutableArray *resultArray = [[NSMutableArray alloc] initWithCapacity:0];
// JSONDict is your JSON dict
for (NSDictionary *aDict in JSONDict[@"choices"]) {
    [resultArray addObject:aDict[@"id"]];
}

NSLog(@"%@", resultArray);

<强>输出:

  

(       108,       109,       110,       111,       112   )

答案 2 :(得分:0)

尝试这样,

    NSMutableArray *idArray=[[NSMutableArray alloc]init];
    for(int i=0;i<[jsonArray count];i++)
        [idArray addObject:[[jsonArray objectAtIndex:i] valueForKey:@"id"]];
    NSLog(@"%@",idArray);

这里你将获得idArray中的所有值。

答案 3 :(得分:0)

如果我理解你的问题,那么你可以试试这个代码来获取数组中的ID:

 NSMutableArray *arr = [[NSMutableArray alloc] init];
    for (int i = 0;i<[choices count];i++)
    {
        [arr addObject:[[choices objectAtIndex:i] objectForKey:@"id"]];
    }

    NSLog(@"ID array : %@",arr);
[arr release];