[英]How to parse multiple json in objective-c?
我正在尝试在Objective-C中解析JSON,但遇到了麻烦。 我要遵循的教程中的示例仅在父节点之后进入第一级。 我正在尝试获取更深层次的数据。 有关如何执行此操作的任何建议?
我尝试获取的元素:标题:data.children [i] .data.title缩略图:data.children [i] .data.thumbnail Json: http : //www.reddit.com/r/HistoryPorn/.json
NSURL *blogURL = [NSURL URLWithString:@"http://www.reddit.com/r/HistoryPorn/.json"];
NSData *jsonData = [NSData dataWithContentsOfURL:blogURL];
NSError * error = nil;
NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
self.blogPosts = [NSMutableArray array];
NSArray * blogPostsArray = [dataDictionary objectForKey:@"data"];
for (NSDictionary *bpDictionary in blogPostsArray) {
BlogPost * blogPost = [BlogPost blogPostWithTitle:[bpDictionary objectForKey:@"title"]];
blogPost.thumbnail = [bpDictionary objectForKey:@"thumbnail"];
blogPost.url = [NSURL URLWithString:[bpDictionary objectForKey:@"url"]];
[self.blogPosts addObject:blogPost];
}
使用新语法,应该更容易在嵌套字典中获取键。 您只需绘制一棵树就可以知道完整的键/索引路径,请记住,字典以大括号开头,而数组以方括号开头。 例如,让我们检索children数组中第一个条目的“ thumbnail”和“ url”值:
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
if(!json)
{
// Always handle eventual errors:
NSLog(@"%@",error);
return;
}
NSString* thumbnail= json[@"data"][@"children"][0][@"data"][@"thumbnail"];
NSString* url= json[@"data"][@"children"][0][@"data"][@"url"];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.