如何使我的AFNetworking“responseObject”得到我可以解析的NSDictionary?

时间:2014-01-23 18:02:57

标签: ios objective-c nsdictionary afnetworking nsdata

我与AFNetworking 1.0进行此调用,返回responseObject,其中包含我想要的API数据:

[[AFDiffbotClient sharedClient] postPath:@"http://diffbot.com/api/batch" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {

但是,我不知道如何处理responseObject

如果我检查[responseObject class],我会NSData

如果我NSLog(@"%@", responseObject)我得到一堆数字(我假设的内存地址):

  

< 5b0a7b22 68656164 65727322 3a5b7b22 6e616d65 223a6e75 6c6c2c22 76616c75 65223a22 48545450 2f312e31 20323030 204f4b22 7d2c7b22 6e616d65 223a2244 61746522 2c227661 ...

如果我这样做:

NSString *responseString = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"%@", responseString);

我得到了我想要的输出! 但是,它是NSString

如果我这样做:

NSError *error;
NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:&error];
NSLog(@"%@", responseDictionary);

我得到一个NSDictionary,但它缺少绝大部分的回复(即:我没有得到NSString方法中包含的内容)。

我该如何处理这个对象?

1 个答案:

答案 0 :(得分:9)

我就是这样做的。

- (void) requestDataFinish:(NSData *)data withError:(NSError *)networkError
{
    NSDictionary *responseData;
    NSError *error = nil;
    if (data != nil) {
        responseData = [NSJSONSerialization JSONObjectWithData:data
                                                       options:NSJSONReadingMutableContainers
                                                         error:&error];
    }
...