iOS解析JSON?

时间:2014-02-18 10:40:19

标签: objective-c nsjsonserialization

我从服务器

收到以下回复
[{"id":"16","name":"Bob","age":"37"},{"id":"17","name":"rob","age":"28"}];

我正在使用AFNetworking框架,

我在NSData收到上述回复,然后使用以下代码,我可以收集NSDictionary

中的数据
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingAllowFragments error:&error];

但是如何解析"name"的{​​{1}}和"age"值?

1 个答案:

答案 0 :(得分:5)

你期待NSDictionary,但你的回复给你一系列词典,试试这个:

NSArray *array = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingAllowFragments error:&error];
for (NSDictionary *dict in array)
{
    NSLog(@"Name: %@, age: %@", dict[@"name"], dict[@"age"]);
}

//扩展

从下面的评论中看起来你的响应中有一个字符串,而不是你在上面的代码中显示的NSArray。 您可以解析字符串以获取所需的数据,也可以将其转换回json和NSArray:

    NSString * jsonString = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingAllowFragments error:&error];
    NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
   //As I post above

现在你应该有一个NSArray,我的代码应该可以完成这项工作。