我知道这是一个常见问题,但我坚持使用API
如何解析此API中的数据:http://dl.bahramradan.com/api/1/get/ig
它包含20个对象,在每个对象中还有3个其他对象称为"图像",日期"和"标题"
我怎样才能存储所有" date" ios中NSMUtableArray中的值?
我这样做了:
NSString *urlStr = [NSString stringWithFormat:@"http://dl.bahramradan.com/api/1/get/ig"];
NSURL *url = [NSURL URLWithString:urlStr];
NSData *json = [NSData dataWithContentsOfURL:url];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:json options:0 error:NULL];
NSArray *dateArray = [dict objectForKey:@"date"];
但是当我运行我的应用程序时,它会在最后一行崩溃,出了什么问题?
答案 0 :(得分:2)
如果您的JSON有效,我没有检查。但是你的代码中有一个明显的错误:如果JSON由20个对象组成,我假设它们包含在数组中,而不是在dict中!
首先要改变的是
NSArray *array = [NSJSONSerialization JSONObjectWithData:json options:0 error:NULL];
然后,您想要提取所有项目的“日期”值,并将它们组合在另一个数组中。 最简单的方法是使用KVC Collection Operator
NSArray *dateArray = [array valueForKeyPath:@"@unionOfObjects.date"];
那么,'@ unionOfObjects.date'的作用是:遍历数组中的所有对象,查找每个'date'值并将它们组合在返回的数组中。 Check out this excellent post about KVC Collection Operators!