Ich habe die folgende JSON-Objekt:Parsing verschachtelte JSON-Objekte mit JSON-Framework für Objective-C
{
"response": {
"status": 200
},
"messages": [
{
"message": {
"user": "value"
"pass": "value",
"url": "value"
}
]
}
}
Ich bin mit JSON-Framework (auch versucht, JSON Touch) durch diese zu analysieren und Erstelle ein Wörterbuch. Ich möchte auf den Block "message" zugreifen und die Werte "user", "pass" und "url" herausziehen.
In Obj-C Ich habe den folgenden Code:
// 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);
}
Ich kann „Botschaften“ herausziehen und all die „Botschaft“ Blöcke sehen, aber ich bin nicht in der Lage, tiefer zu analysieren und herausziehen " user "," pass "und" url ".
Die json: }
dann in Ihrem JSONDictonary die Daten, indem Sie zugegriffen werden string ist fehlerhaft, so wie du es hier geschrieben hast. Das Nachrichtenarray hat zwei offene geschweifte Klammern und nur einen Abschluss. – Felixyz