在iOS中解析json数据

时间:2014-05-07 14:58:54

标签: ios json api parsing

我知道这是一个常见问题,但我坚持使用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"];

但是当我运行我的应用程序时,它会在最后一行崩溃,出了什么问题?

1 个答案:

答案 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!