问题描述
- 如何访问NSDictionary的内容
-
在访问字典内容的时候失败:NSLog(@"self.userCommentsArray %@",self.userCommentsArray);返回null。
请帮忙:
NSData *jsonData = [NSData dataWithContentsOfURL:myURL]; NSDictionary *userCommentsDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; NSLog(@"userCommentsDictionary %@",userCommentsDictionary); // this works self.userCommentsArray = [[userCommentsDictionary objectForKey:@"from"] objectForKey:@"name"]; NSLog(@"self.userCommentsArray %@",self.userCommentsArray);
这是dicitionary的NSlog输出:
userCommentsDictionary { data = ( { created = "2013-07-16T18:42:56+02:00"; from = { id = 27; name = "user-4"; }; id = 2553; message = "liquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"; }, { created = "2013-07-16T18:42:56+02:00"; from = { id = 28; name = "user-5"; }; id = 2554; message = "x ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"; }, { created = "2013-07-19T16:18:56+02:00"; from = { id = 24; name = "user-1"; }; id = 5125; message = test comment; }, { created = "2013-07-19T17:00:21+02:00"; from = { id = 24; name = "user-1"; }; id = 5126; message = "test comment "; } ); meta = { totalCount = 18; }; }
解决方案
userCommentsDictionary 中可以根据data得到一组数据。你要找的内容就在这一组数据中
NSArray *data=userCommentsDictionary[@"data"];
这时返回的是一个数组,你可以根据下标索引取任意一行中的数据,也可以循环遍历所有的数据。下面的代码取的是第一行的数据
id entity=[data objectAtIndex:0];
再取对象中的from下的name
NSString *name=entity[@"from"][@"name"];
时间: 2024-11-03 11:49:19