我从服务器
收到以下回复[{"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"
值?
答案 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,我的代码应该可以完成这项工作。