我与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
方法中包含的内容)。
我该如何处理这个对象?
答案 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];
}
...