替代AFNetworking中的JSONRepresentation

时间:2014-02-27 13:58:05

标签: ios

我在我当前的应用程序中使用SBJSON和Serialiazation。现在我用AFNetworking2.0替换NSURLConnection。我已经读过使用AFNetworking可以进行序列化。请建议AFNetworking中JSONRepresentation的替代方案是什么?

由于

1 个答案:

答案 0 :(得分:1)

AFNetworking使用NSJSONSerialization来解析JSON并创建一个基金会代表权。 Apple大大提高了NSJSONSerialization的性能。使用iOS 6及更高版本时,它是最快的库之一。您可以在文档中看到它:

Warning: JSON parsing will use the built-in NSJSONSerialization class.http://cocoadocs.org/docsets/AFNetworking/1.3.1/Classes/AFJSONRequestOperation.html 或者只是在源代码中。

这使得在AFNetworking中使用JSON数据非常简单。

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:someRequest];
operation.responseSerializer = [AFJSONResponseSerializer serializer]; 

此后您就可以开始工作了:

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
 NSDictionary* response = responseObject;
 NSLog(@"Here is parsed Json data: %@", response);
 } failure:^(AFHTTPRequestOperation *operation, NSError *error){
 NSLog(@"Error");
}];
 [operation start];

P.S.我强烈建议您使用默认的AFNetworking工具来处理JSON,因为它会节省大量时间,并且只有在您有一些非常非常具体的性能要求时才能找到更快的库并集成它们与AFNetworking。但这里更快不是唯一的标准。一个lib对于小块数据来说可能非常快,而且在大块数据上速度非常慢。