-4

JSON形式のコードは次のようになります。

{   
 "rates": {  
           "amc": "201",  
           "hyd": "500.50",  
           "guj": "200.10",  
           "afgd": "400"  
         } 
}                                                                  

JSON値を解析した後、上記のコード配列は次を返します。

array = [values valueForKey:@"rates"];

どの配列が返されるか

{  
           amc = "201"; 
           hyd = "500.50";  
           guj = "200.10";  
           afgd = "400";
           ...........etc



}

UITableViewしかし、私はルックamc:201で印刷したい

これどうやってするの?

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
  [connection release];

   NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
   self.responseData = nil;

   values = [responseString JSONValue];
   array = [[NSMutableArray alloc] init];
   NSMutableArray *arrTitle = [[NSMutableArray alloc] init];
   NSMutableArray *arrValues = [[NSMutableArray alloc] init];
   array =[values valueForKey:@"rates"];

   NSLog(@"array values:--> %@",array);
 //    NSLog(@"values:--> %@",values);
 //    NSLog(@"Particular values:--> %@",[[values valueForKey:@"rates"] valueForKey:@"AED"]);

   tempDict1 = (NSMutableDictionary *)array;            
   NSArray *arr;// =[[NSArray alloc]init];
   arr = [[tempDict1 valueForKey:@"rates"] componentsSeparatedByString:@";"];
   NSLog(@"arr-->%@",arr);
   NSString *subStar = @"=";
   [arrTitle removeAllObjects];
   [arrValues removeAllObjects];

   for (int i=0; i<[arr count]-1; i++)
   {
        [arrTitle addObject:[[arr objectAtIndex:i] substringToIndex:NSMaxRange([[arr objectAtIndex:i] rangeOfString:subStar])-1]];
        [arrValues addObject:[[arr objectAtIndex:i] substringFromIndex:NSMaxRange([[arr objectAtIndex:i] rangeOfString:subStar])]];
         NSLog(@"arrTitle is:--> %@",arrTitle);
   }

   tempDict1 = (NSMutableDictionary*)[array objectAtIndex:0];
   array = [values valueForKey:@"rates"];
   NSLog(@"tempDict--%@",[tempDict1 objectForKey:@"AED"]);

   [array retain];
   [tbl_withData reloadData];
}
4

3 に答える 3

1

試す:

NSMutableArray * array2=[[NSMutableArray alloc]init];    
[array addObject: [[array objectAtIndex:0] objectForKey:@"amc"]];    
[array addObject: [[array objectAtIndex:0] objectForKey:@"hyd"]];    
[array addObject: [[array objectAtIndex:0] objectForKey:@"guj"]];    
[array addObject: [[array objectAtIndex:0] objectForKey:@"afgd"]];    

テーブルセルに array2 値を入力します。

お気に入り:

cell.text=[array2 objectAtIndex:indexPath.row];    
于 2012-09-14T06:01:33.670 に答える
0

[values valueForKey:@"rates"] の戻り値の型は、値の配列ではなく辞書です。

NSDictionary *dict = [values valueForKey:@"rates"];

objectForKeyを使用してディクショナリ内のget値を参照できるようになりました

または、配列に格納する場合。

NSMutableArray *array = [NSMutableArray array];
for (NSString *key in [dict allKeys])
{
    array = [dict objectForKey:key];
}

したがって、最終的に配列にはディクショナリ内のすべての値が含まれます。

// returns no of rows
-(NSInteger) tableView: (UITableView *) tableView numberOfRowsInSection: (NSInteger) section  
{
    return [array count];
}

// contents of row will be    
-(UITableViewCell*) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath     
{
     static NSString *CellIdentifier = @"test";

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil) 
     {
         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
     }

     // Configure the cell...
     NSString *value = [self. array objectAtIndex:indexPath.row];

     cell.textLabel.text = value;

     return cell;
}
于 2012-09-14T06:06:17.990 に答える
0

これを試して:-

 NSDictionary *dict =[values valueForKey:@"rates"];
 NSString *str=[dict valueForKey:@"amc"];

You need to do this:-
 NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
   self.responseData = nil;

   values = [responseString JSONValue];
   NSMutableArray *arrTitle = [[NSMutableArray alloc] init];
   NSMutableArray *arrValues = [[NSMutableArray alloc] init];
     NSDictionary *dict =[values valueForKey:@"rates"];
 NSString *str=[dict valueForKey:@"amc"];

必要に応じて休むことができます。

于 2012-09-14T05:57:35.697 に答える