这是我第一次使用AFNetwork,在我使用ASIHTTP请求之前,我无法重复使用我的代码,但无论如何,我在使用JSON提取时遇到问题,我似乎无法弄明白为什么,所以我希望有人能告诉我光明
这是代码
[httpClient registerHTTPOperationClass:[AFJSONRequestOperation class]];
[httpClient postPath:@"" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString *responseStr = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSDictionary *results = (NSDictionary *) responseStr;
NSArray *pets = [results objectForKey:@"animals"];
这是JSON
{
"animals" : [
{
"type" : "cat",
"weight" : "2lbs"
},
{
"type" : "cat",
"weight" : "15oz"
}
]
}
不知怎的,我总是得到 - [__ NSCFString objectForKey:]:在从字典解析NSArray时发送到实例0x7355ab0'的无法识别的选择器,我之前没有遇到过麻烦......我错过了什么吗? >,<
尝试并尝试后.........
感谢大家抽出时间回答我的问题。我不知道为什么它不起作用,但我结果使用NSJSONSerialization,现在数组运行完美。
[httpClient registerHTTPOperationClass:[AFJSONRequestOperation class]];
[httpClient postPath:@"" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSError*error;
NSDictionary *results = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:&error];
NSArray *pets = [results objectForKey:@"animals"];
答案 0 :(得分:0)
This link对我来说非常有用,可以从我的服务器发送和获取JSON对象。
希望它会对你有所帮助。
答案 1 :(得分:0)
我也很久以前就遇到过这个问题,同样有一个小的解决方法
AFJSONRequestOperation中的转到方法responseJSON并更改
self.responseJSON = [NSJSONSerialization JSONObjectWithData:data options:self.JSONReadingOptions error:&error];
到这个
self.responseJSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];