0

这是我第一次使用 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:]: unrecognized selector sent to instance 0x7355ab0' 在解析字典中的 NSArray 时,我之前没有遇到任何问题......我错过了什么吗?>,<

在尝试和尝试之后......

谢谢大家花时间回答我的问题。我不知道为什么它不起作用,但结果我使用 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"];
4

2 回答 2

0

I also faced this issue long time back, there is a small workaround for the same

in AFJSONRequestOperation go to method responseJSON and change

self.responseJSON = [NSJSONSerialization JSONObjectWithData:data options:self.JSONReadingOptions error:&error];

to this

self.responseJSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
于 2013-08-23T13:35:09.150 回答
0

这个链接对我从我的服务器发送和获取 JSON 对象非常有用。

希望它会帮助你。

于 2013-08-23T13:33:00.177 回答