6
votes

À l'analyse des objets JSON imbriqués avec le cadre JSON pour l'objectif-c

J'ai l'objet JSON suivant:

// Create new SBJSON parser object
SBJSON *parser = [[SBJSON alloc] init];

// Prepare URL request to download statuses from Twitter
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:myURL]]; 

// Perform request and get JSON back as a NSData object
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

// Get JSON as a NSString from NSData response
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];

//Print contents of json-string
NSArray *statuses = [parser objectWithString:json_string error:nil];
NSLog(@"Array Contents: %@", [statuses valueForKey:@"messages"]);
NSLog(@"Array Count: %d", [statuses count]);


NSDictionary *results = [json_string JSONValue];
NSArray *tweets = [[results objectForKey:@"messages"] objectForKey:@"message"];

for (NSDictionary *tweet in tweets)
{
    NSString *url = [tweet objectForKey:@"url"];
    NSLog(@"url is: %@",url);
}


1 commentaires

La chaîne JSON est mal formée, comme vous l'avez écrite ici. Le tableau des messages a deux bretelles bouclées ouvertes et une seule fermeture.


3 Réponses :


6
votes
nsarray *arr = jsonmainarray;


arr = [[[jsonmainarray objectAtIndex: 1] objectforkey:@"messages"] objectatindex: 0];



nsdictionary *dict = [arr objectatindex: 0];

arr = [dict objectforkey:@"message"];

dict = [arr objectatindex: 0]; // Dictionary with user, pass, url

0 commentaires

9
votes

résolu: xxx


1 commentaires

Pouvez-vous expliquer cette réponse un peu plus?



2
votes

Il y a un moyen plus facile (à mon avis) de faire l'analyse JSON :)

[jsonDictionary objectForKey:@"urls"]; //This will return an Array since URLS is a array
[jsondictionary objectForKey:@"en_url"]; //this will return an NSString since end_url is a string


0 commentaires