繁体   English   中英

如何在Objective-C中解析多个JSON?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM