SBJsonParser *parser = [[SBJsonParser alloc] init];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.krsconnect.no/community/api.html?method=bareListEventsByCategory&appid=620&category-selected=350&counties-selected=Vest-Agder,Aust-Agder"]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
NSDictionary *object = [parser objectWithString:json_string error:nil];
NSArray *results = [parser objectWithString:json_string error:nil];
NSDictionary *dictOne = [results objectAtIndex:0];
appDelegate.books = [[NSMutableArray alloc] init];
NSArray *activitiesArray = [dictOne objectForKey:@"events"];
NSDictionary *dictTwo = [activitiesArray objectAtIndex:0];
NSArray *eventArray=[dictTwo objectForKey:@"event"];
NSDictionary *dictThree=[eventArray objectAtIndex:0];
// NSLog(@"%@ - %@", [dictOne objectForKey:@"date"]);
// NSLog(@"%@ - %@", [dictTwo objectForKey:@"affectedDate"]);
NSString*date=[dictOne objectForKey:@"date"];
NSLog(@"%@ - %@", [dictTwo objectForKey:@"affectedDate"]);
NSLog(@"%@ - %@", [dictThree objectForKey:@"title"]);
NSLog(@"%@ - %@", [dictThree objectForKey:@"location"]);
NSLog(@"%@ - %@", [dictThree objectForKey:@"municipality"]);
当我的NSLog(标题)位置和市政当局显示零值
时JSON:
[
{
"date": 1311552000000,
"events": [
{
"affectedDate": 1311552000000,
"event": {
"appId": 42,
"eventId": 18095,
"location": "Sjølingstad Uldvarefabrik",
"municipality": "Lindesnes",
"title": "Utstillingsåpning - romfisk"
}
},
{
"affectedDate": 1311552000000,
"event": {
"appId": 42,
"eventId": 18095,
"location": "Sjølingstad Uldvarefabrik",
"municipality": "Lindesnes",
"title": "Utstillingsåpning - romfisk"
}
},
{
"affectedDate": 1311580800000,
"event": {
"appId": 620,
"eventId": 19490,
"location": "Høvåg Gjestehus, Vestre Vallesverd, Høvåg",
"municipality": "Lillesand",
"title": "Kunstutstilling på Høvåg Gjestehus"
}
},
...
]
按照Praveen的说法,我尝试了这段代码,但它仍然无效:
NSDictionary *dictOne = [results objectAtIndex:0];
NSArray *activitiesArray = [dictOne objectForKey:@"events"];
NSDictionary *dictTwo = [activitiesArray objectAtIndex:1];
NSArray *eventArray=[dictTwo objectForKey:@"event"];
NSDictionary *dictThree=[eventArray objectAtIndex:2];
答案 0 :(得分:0)
JSONValue
的标准NSString添加额外的解析方法,该NSString返回NSDictionary
的{{1}}表示。 获得NSDictionary后,将其转换为NSArray,如此NSString
,然后使用方法NSArray * values = [dictionary allValues];
获取日期,依此类推。
答案 1 :(得分:0)
它的嵌套Json。值的解析和检索是不同的。获得嵌套对象的字典值后,您需要深入了解它以获取下一个值。
所以基本上你的代码应该是
NSDictionary *dictTwo = [activitiesArray objectAtIndex:1]; // Or get object for key events