2014-09-17 3 views
-2

J'ai besoin d'obtenir des valeurs d'objet particulier (A, B, C, D) et des valeurs de clé associées (@ "nom"). Ci-dessous, j'ai posté mon exemple de code et réponse. Aidez-moi, s'il vous plaît.Comment obtenir des valeurs d'objet et des valeurs de clé particulières à partir de la réponse JSON?

NSString *combined = URL; 
NSURL *url = [[NSURL alloc] initWithString:combined]; 
NSData *responseData=[NSData dataWithContentsOfURL:url]; 
NSError *error; 
NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 
NSArray *responsData = [jsonDictionary objectForKey:@"response"]; 

// GET A,B,C Object values 
NSDictionary *d1 = responsData.firstObject; 
NSEnumerator *enum1 = d1.keyEnumerator; 
NSArray *firstObject = [enum1 allObjects]; 

Mon JSON Réponse:

response : [ { 

        A = [ { 
          name : tango 
           } 
          { 
          name : ping 
          } 
         ] 

        B = [ { 
          name : tango 
           } 
          { 
          name : ping 
          } 
         ] 
       } ] 
+0

Vous voulez dire, par exemple, vous avez besoin de tous les 'name's de' A'? – bhargavg

+0

oui mais sans crochets de tableau. Merci – Ajay

Répondre

1

Vous pouvez obtenir la liste de tous les noms en utilisant ceci:

NSMutableArray *names = [[NSMutableArray alloc] init]; 

    for (NSDictionary *dict in responsData) { 

     [dict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) { 
      NSArray *valueArray = (NSArray *)obj; 

      for (NSDictionary * namesDict in valueArray) { 
       [names addObject:namesDict[@"name"]]; 
      } 
     }]; 
    } 

Sortie:

NSLog(@"Names %@",names); 

tango, ping, tango, ping.

Espérons que ça aide!

+0

Wow Votre très grand homme Pensée-Bête. Merci pour votre aide. – Ajay

+0

@ user3678460 taille du nom ?? Si vous demandez le nombre de noms, cela devrait être super facile; 'names.count'. –

+0

Ya désolé, je le sais. Merci beaucoup.. – Ajay

1

simplement

for(NSDictionary *dict in firstObject){ 
    NSLog(@"%@",[dict objectForKey:@"name"]); 
} 
+0

Merci pour votre aide. Mais au dessus j'obtiens et stocke séparément l'objet A B C puis je vérifie en utilisant for (firstObject in responsData) {}. Ici, je peux obtenir la valeur de nom tableau séparé. Je dois obtenir sans bractes de tableau et énumérer toutes les valeurs de nom. – Ajay

+0

Merci @Shahab Qureshi – Ajay

Questions connexes