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); }
3 Réponses :
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
résolu:
Pouvez-vous expliquer cette réponse un peu plus?
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
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.