2013-02-27 3 views
-2

J'ai la réponse suivante dans JSON, et je ne suis pas sûr sur la façon de l'analyserParse réponse JSON objectif iphone c

[{"WordArray":[{"Id":11,"Word1":"ODDER","Category":"Dyr","Differculty":1,"Language":"Danish"},{"Id":225,"Word1":"PRAG","Category":"International by","Differculty":1,"Language":"Danish"}]},{"WordArray":[{"Id":3,"Word1":"TIGER","Category":"Dyr","Differculty":1,"Language":"Danish"},{"Id":154,"Word1":"BOLLE","Category":"Mad og drikke","Differculty":1,"Language":"Danish"}]}, 
{"WordArray":[{"Id":3,"Word1":"TIGER","Category":"Dyr","Differculty":1,"Language":"Danish"},{"Id":147,"Word1":"PIZZA","Category":"Mad og drikke","Differculty":1,"Language":"Danish"}]}] 

J'ai essayé ce qui suit sans chance

NSMutableArray* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 

NSMutableArray * roundWords = [[NSMutableArray alloc]retain ]; 

roundWords = [json objectAtIndex:i]; 

JSON contient mon 3 'WordArray' mais je ne sais pas comment procéder .. Comment puis-je itérer sur chaque élément dans WordArray et NSLog la valeur Word1, par exemple?

Merci!

+0

Notez également que ceci n'est même pas lié à Xcode. –

Répondre

1

comment puis-je itérer sur chaque élément WordArray et NSLog la valeur Mot1

Utilisation de l'énumération rapide.

for (NSDictionary *dict in array) { 
    NSLog(@"%@", [dict objectForKey:@"Word1"]); 
} 

Par ailleurs, votre code est erroné à plusieurs endroits:

NSMutableArray *roundWords = [[NSMutableArray alloc] retain]; 
roundWords = [json objectAtIndex:i]; 

Un, on n'utilise pas retain enchaînée avec alloc comme ça. Utilisez init pour initialiser un objet. Deux: à moins que vous n'utilisiez ARC (ce que vous n'utilisez pas), vous fuyez la mémoire avec cette ligne - le pointeur vers le tableau d'origine est ignoré car vous y réaffectez quelque chose d'autre.

Trois: [json objectAtIndex:i] est pas un NSMutableArray - c'est un NSDictionary (qui est immuable, par la façon dont les déclarations n'est pas magique - mais vous déclarez votre variable, il n'affectera pas le fait que NSJSONSerialization retourne un immuable. dictionnaire, sauf indication contraire).