我有一个简单的php文件,它提供了以下 JSON 数据:
{"a":"apple","b":"banana","c":"catnip"}
我已尝试过各种方法在iOS中解析这些数据,只需在 NSLog 中发布,例如:
- (void) getData {
NSURL *url = [NSURL URLWithString:@"http://bla.com/mapdata.php"];
NSData *data = [NSData dataWithContentsOfURL:url];
NSMutableArray *json = [NSJSONSerialization
JSONObjectWithData:data
options:kNilOptions
error:nil];
NSLog(@"The size of json is %lu", (unsigned long)[json count]);
for (int i = 0; i < json.count; i++) {
NSDictionary *row = [json objectAtIndex:i];
NSLog(@"a: %@, b:%@, c:%@", [row objectForKey:@"a"], [row objectForKey:@"b"], [row objectForKey:@"c"]);
}
}
我总是在这一行中遇到同样的错误:
NSDictionary *row = [json objectAtIndex:i];
错误消息: - [__ NSCFDictionary objectAtIndex:]:无法识别的选择器发送到实例0x1550a7d0
类似问题的其他答案无法帮助我解决问题,因此非常感谢任何帮助!
答案 0 :(得分:0)
您的JSON响应不是数组,它包含一个对象。所以你不能使用
NSDictionary *row = [json objectAtIndex:i];
只需使用:
NSDictionary *json = [NSJSONSerialization
JSONObjectWithData:data
options:kNilOptions
error:nil];
NSLog(@"a: %@, b:%@, c:%@", [json objectForKey:@"a"], [json objectForKey:@"b"], [json objectForKey:@"c"]);