2010-07-18 5 views
2

J'ai JSON-cadre et en cours d'exécution sur mon projet, mais qui ont besoin d'aide pour déterminer comment l'utiliser pour analyser cette chaîne JSON:Besoin d'aide JSON-cadre sur l'iPhone

[ 
    { 
    "id":"0", 
    "name":"name", 
    "info":"This is info", 
    "tags": 
     [ 
      { 
      "id":"36", 
      "tag":"test tag" 
      }, 
      { 
      "id":"37", 
      "tag":" tag 2" 
      } 
     ], 
    "other":"nil" 
    }, 
    { 
    "id":"1", 
    "name":"name", 
    "info":"This is info", 
    "tags": 
     [ 
      { 
      "id":"36", 
      "tag":"test tag" 
      }, 
      { 
      "id":"37", 
      "tag":" tag 2" 
      } 
     ], 
    "other":"nil" 
} 

]

Toute aide et peut-être un exemple de code sur la façon de faire à ce sujet spécifique type de json serait génial. D'une certaine manière je ne peux pas l'obtenir dans un dictionnaire que je peux lire. Merci beaucoup.

Répondre

7

La raison pour laquelle vous ne pouvez pas obtenir cette chaîne dans un dictionnaire est parce que ce n'est pas un dictionnaire, c'est un tableau de dictionnaires

Vous pouvez obtenir les valeurs dans un objet Objective-C en les stockant dans un NSArray:

NSArray *objects = (NSArray*) [jsonString JSONValue]; 

Ensuite, vous pouvez passer en boucle les objets qui se trouvent dans le tableau:

for(NSDictionary *dict in objects) { 
    NSString *id = (NSString *) [dict objectForKey:@"id"]; 
    NSString *name = (NSString *) [dict objectForKey:@"name"]; 
    NSArray *tags = (NSArray *) [dict objectForKey: @"tags"]; 
    //loop over tags here... 
    for(NSDictionary *tag in tags) { 
     NSString *tag_id = (NSString *) [tag objectForKey:@"id"]; 
     NSString *tag_name = (NSString *) [tag objectForKey:@"tag"]; 
    } 
    //... 
} 
+2

Je ne peux probablement pas vous remercier assez pour me montrer ceci. Je suis vraiment nouveau à json analyse et tout et jusqu'à 'jusqu'à maintenant j'ai eu un sacré temps à trouver un tutoriel ou quelqu'un pour m'aider. Merci. – Alexander

+0

@Alexander, vous êtes les bienvenus. À tout moment. –